Hogyan tudok egy rekord elso par karakterere utalni csak? (PHP)
bocsi ha hulyen van megfogalmazva a kerdes.
van egy mysql tablam amibe van egy olyan oszlop ahol a pontos datum van bent. ugy hogy ev honap nap ora perc masodperc.
nah most a tabla kiiratasanal szepen be is jonnek az ertekek. mar megcsinaltam a filter reszet a nevekhez, de a datumhoz nem tudom, mert hogy csinalom azt, hogy gettel, atadjam csak az elso X szamu karaktert es rakeressen az adatbazisba azokra a sorokra ahol az ev honap es nap is megegyezik. de az ora meg a perc az tok mind1.
koszi a segitseget
fordítás:
sql query, ami napra pontosan kérdez le, de a mezőben percre pontos idő van.
WHERE DATE(datetime) = '2009-10-20'
vagy
WHERE datetime LIKE '2009-10-20%'
állítólag az előbbit nem érdeklik az indexek, az utóbbi pedig használja
forrás: [link]
de még van pár féle megoldás
$sql = "SELECT name, date, truck, battery, wheels, forks, chains, light, horn, controls, steering, break, mast, oilleaks, speedrestrictor, issue, vor FROM preshift WHERE date =\"".mysql_real_escape_string($_GET['date'])."\" ORDER BY date DESC";
van egy ilyen lekerdezesem azokhoz ahol a pontos ertekeket kerdezem le. mar sikerult a linknel rendesen hasznalni azt a substr-t de ebbe a lekerdezesbe hogy tudom megvaltoztani ugy hogy jo legyen?
Így:
$sql = "SELECT `name`, `date`, `truck`, `battery`, `wheels`, `forks`, `chains`, `light`, `horn`, `controls`, `steering`, `break`, `mast`, `oilleaks`, `speedrestrictor`, `issue`, `vor` FROM `preshift` WHERE `date` LIKE '".mysql_real_escape_string($_GET['date'])."%' ORDER BY `date` DESC";
SQL query-ben ne használj dupla idézőjelet! Egyrészt nem szabványos, másrészt hibaüzenettel elszáll. Mező és tábla és adatbázisneveket pedig ` quote-ok közé érdemes tenni, ha megpróbálsz foglalt neveket használni (name, date, esetleg break, issue) különben bizonyos lekérdezések érdekes eredményeket adnak vissza.
"SQL query-ben ne használj dupla idézőjelet! Egyrészt nem szabványos, másrészt hibaüzenettel elszáll."
!?!?
#7: szokásjog szerint mysqli_query($string[connection datas], $string[sql query])-ben az sql-t "-ek között adjuk meg, tehát belül csak ' használható.
Bár véleményem szerint megfordítható.
Ugyanakkor nem használható csak az egyik, amire szerintem a válaszadó is utalni akart.
$valami = mysql_real_escape_string($valami);
mysql_query("SELECT * FROM `tabla` WHERE `valami` = '$valami' ");
mysql_query("SELECT * FROM `tabla` WHERE `valami` = '{$valami}' ");
mysql_query("SELECT * FROM `tabla` WHERE `valami` = '".($valami)."' ");
mysql_query("SELECT * FROM `tabla` WHERE `valami` = \"".($valami)."\" ");
mysql_query('SELECT * FROM `tabla` WHERE `valami` = "'.($valami).'" ');
mysql_query('SELECT * FROM `tabla` WHERE `valami` = \''.($valami).'\' ');
Melyikkel mi a gond?
A fele értelmetlen, csak ennyi velük a gond.
mysqli_query($con, "SELECT * FROM table WHERE troll = '$valami'"}
Én így szoktam, működni működik, és nem dob ki szintaktikai hibát. Persze nem így, csak ha SESSION vagy IO-adatokat kérek le, egyébként prepared statementeket használok, max. ha lusta vagyok épp használok real escapet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!