Autor | Zpráva | ||
---|---|---|---|
Pierrre Profil |
#1 · Zasláno: 3. 1. 2012, 15:31:54
Narazil jsem na zvláštní věc při vkládání do databáze.
V poli mám výsledek regulárního výrazu, ke dvěma prvkům přičtu další a pak to chci uložit. Když funkci mysql_query dám prvky pole, nic se neuloží. Pokud použiju pomocnou proměnnou, funguje to. Dá se to nějak udělat, abych tu pomocnou proměnnou nepotřeboval? // neuloží se nic $g[0][1]+=$g[0][3]+$g[0][5]; $g[0][2]+=$g[0][4]+$g[0][6]; mysql_query("INSERT INTO tab (date, gh, ga) VALUES ('$date','$g[0][1]','$g[0][2]')"); //uloží se požadované hodnoty $gh=$g[0][1]+$g[0][3]+$g[0][5]; $ga=$g[0][2]+$g[0][4]+$g[0][6]; mysql_query("INSERT INTO tab (date, gh, ga) VALUES ('$date','$gh','$ga')"); |
||
martin1312 Profil |
#2 · Zasláno: 3. 1. 2012, 17:51:32 · Upravil/a: martin1312
Pierrre:
Nejako moc sa query nerozumiem, ale nemalo by byt namiesto tohto: „mysql_query("INSERT INTO tab (date, gh, ga) VALUES ('$date','$g[0][1]','$g[0][2]')");“ toto ? „mysql_query("INSERT INTO tab (date, g, g) VALUES ('$date','$g[0][1]','$g[0][2]')");“ |
||
Tori Profil |
#3 · Zasláno: 3. 1. 2012, 18:33:00 · Upravil/a: Tori
Pierrre:
PHP parser bere při takovémto zápise jako index pole jen první hranaté závorky, takže z tohoto mysql_query("INSERT INTO tab (date, gh, ga) VALUES ('$date','$g[0][1]','$g[0][2]')"); INSERT INTO tab (date, gh, ga) VALUES ('---datum---','Array[1]','Array[2]') .
Použijte složené závorky, nebo dejte proměnnou mimo řetězec: mysql_query("INSERT INTO tab (date, gh, ga) VALUES ('$date','{$g[0][1]}','" . $g[0][2] . "')"); (V případě asoc.pole se *musí* uvnitř složených závorek psát apostrofy/uvozovky u indexů pole, stejně jako kdyby to bylo zapsané mimo kontext řetězce.)
|
||
Pierrre Profil |
#4 · Zasláno: 3. 1. 2012, 19:18:49
No jasně, složené závorky, že mě to nenapadlo. Díky moc!
|
||
Časová prodleva: 12 let
|
0