Autor Zpráva
jamal
Profil *
zdravim,mohl by mi nekdo napsakt php kod, ze kdyz projizdim databazi tak mam SELECT*FROM produkty WHERE nazev='$nazev' a kdyz tento prikaz nenajde zadny zaznam tak vlozi do tabulky novy zaznam.

diky moc
Majkl578
Profil
$q = mysql_query("SELECT * FROM produkty WHERE nazev='$nazev'");
if(!mysql_num_rows($q)) {
  mysql_query("INSERT INTO produkty SET nazev = '$nazev', obsah='obsah'");//atd
}
mysql_free_result($q);
TomášK
Profil
Pokud je název v tabulce unikátní, pak by na něm měl být příšlušný index:
print ("CREATE UNIQUE INDEX produkty_nazev_unique ON produkty(nazev)") or die(mysql_error());


A pokud je tam index, pak to lze vyřešit jedním dotazem:
/* Seznam produktu, ktere se vlozi do databaze */
$produkty = array( "auto", "motorka", "vesmirna lod" );

/* Pridani zavorek a apostrofu ke kazdemu produktu: auto => ('auto') */
$count = count($produkty);
for ($i = 0; $i < $count; $i++) {
    $produkty[$i] = "('$produkty[$i]')";
}


mysql_query ("INSERT INTO produkty(nazev) VALUES ".implode(", ", $produkty)." ON DUPLICATE KEY UPDATE nazev=nazev") or die(mysql_error());


Není to pěkné použítí ON DUPLICATE KEY UPDATE, ale nenapadlo mě, jak se obejít bez něj.
Mike8748
Profil
TomášK
co pouzit REPLACE ?
TomášK
Profil
Mike8748
Máš pravdu, zapomněl jsem na něj.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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