Autor Zpráva
nowis
Profil *
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); 
//vypreparuji si, co chci uložit do DB pomocí regexp

$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
Ř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 *
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 *
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

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: