Autor | Zpráva | ||
---|---|---|---|
nowis Profil * |
#1 · Zasláno: 26. 1. 2012, 14:26:31
Zdravím,
potřeboval bych poradit s následujícím problémem. Chci aby mi parser jednou za čas aktualizoval data v DB. Jdu na to takto: $vysledek = mysql_query( "SELECT * FROM `tabulka`", $spojeni); while ($zaznam = MySQL_Fetch_Array($vysledek)) //projíždím všechny hodnoty tabulky { $obsah = file_get_contents($zaznam['pars_url']); preg_match_all('~\d{1,3}in~', $obsah, $hodnoty); $zmenaDB = mysql_query( "UPDATE `tabulka` SET `data`= ".hodnoty[0][0]." WHERE `nazev` = ."$zaznam['nazev'], $spojeni); } //updatuju tabulku na řádku, kde se nalézá název, na kterém zovna stojím v rámci while a přejdu na další záznam. Problém je, že se neprovede update. Regexp je funkční. Nefunguje to ani, když nepoužiji proměnné, ale přímé hodnoty. Když ale tento update dám mimo while, tak se přímé hodnoty zapíšou. Příjde mi to divné... |
||
Spectator Profil |
#2 · Zasláno: 26. 1. 2012, 21:06:08
Řekl bych, že chybí apostrofy okolo vkládaných proměnných
|
||
panther Profil |
nowis:
kromě apostrofů je tam divná i zvýrazněná tečka (měla by být za uvozovkou $zmenaDB = mysql_query( "UPDATE `tabulka` SET `data`= '" . $hodnoty[0][0]."' WHERE `nazev` = '" . $zaznam['nazev'] . "'", $spojeni); „Když ale tento update dám mimo while, tak se přímé hodnoty zapíšou.“ nevěřím, se syntaktickými chybami, jak jsi to zapsal, určitě ne. Příště si vypiš mysql_error .
|
||
nowis Profil * |
#4 · Zasláno: 27. 1. 2012, 07:40:49
nowis:
máte pravdu, omlouvám se. Nicméně jsem narazil na jiný problém. Když si přímo vypíšu data, které jsem si načetl do pole $hodnoty, tak je vše OK. Tyto hodnoty uložím do DB, tak se tam uloží jako "Array[0]" Čím to je? |
||
nowis Profil * |
#5 · Zasláno: 27. 1. 2012, 14:46:45
opět se omlouvám, po 2 denním koukání do jednoduchého kódu jsem zjistil, že tam mám jedny apostrofy navíc :-(
Zdravím |
||
Časová prodleva: 12 let
|
0