Aktualizácia mysql databázy

Programovacie jazyky, rady, poradňa...
benqo
Amateur
Amateur
Príspevky: 12
Registrovaný: 20 feb 2010, 9:46

Aktualizácia mysql databázy

Príspevok od používateľa benqo »

Dobrý deň,
chcel by som sa spýtať, mám v databáze MySQL uložené údaje. Načítavam údaje z xml pomocou Simplexml_load_file. Údaje z XML si "ukladám" do premenných pomocou ktorých ich vkladám do databázy pomocou UPDATE. A to následovne:

Kód: Vybrať všetko

$xml = simplexml_load_file("aaa.xml");

$cnt=count($xml->item);
for($i=0;$i<$cnt;$i++){

$id=$xml->item[$i]->id;
$znacka=$xml->item[$i]->brand;
$nazov=$xml->item[$i]->name;
$dostup=$xml->item[$i]->stock;
$cena=$xml->item[$i]->publicPrice;

$b = mysql_query("UPDATE a SET b='$dostup' WHERE d='$id'");
táto časť funguje ako má ale ja som chcel urobiť to, že kde id existuje tak iba prepíše údaje, a tam kde neexistuje id ktoré je v zdroji tak doplní všetky údaje zo zdroja.
Skúšal som to urobiť pomocou ďalšie cyklu a podmienky a to následovne:

Kód: Vybrať všetko


$g = mysql_query("SELECT * FROM a");
while($row = mysql_fetch_array($g))
  {
if($row['d']=!'$id'){
$c= mysql_query("INSERT INTO a (a, b, c, d) VALUES ('$nazov', '$dostup', '$cena', '$id')");
}}}
Chcel by som spýtať, že kde robím chybu, poprípade, že robím uplnú sprostosť, tak akým spôsobom to mám urobiť.

ĎAKUJEM za odpoveď
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Aktualizácia mysql databázy

Príspevok od používateľa audiotrack »

robíš chybu v tom, že namiesto != máš =! čo je hlúposť. ďalej $id v apostrofoch tiež nemá byť. Ani celé to query nemá byť v cykle, inak sa ti tam vloží veľakrát (lebo pre každý záznam kde sa nerovná vložíš)

buď si ich vyber a hoď do poľa. Potom pri prechádzaní xml iba kontroluj funkciu in_array() či v tom poli je, alebo nie je. Druhá možnosť je použiť replace alebo nejaké iné metody ktoré ponúka priamo mysql ale to by bolo treba aj vedieť trošku o návrhu tej databázy a to neuvádzaš
Napísať odpoveď