Forum » Izdelava spletišč » [PHP] Podvajanje vnosov v mysql tabelo
[PHP] Podvajanje vnosov v mysql tabelo
roli ::
Torej imam problemček. Trenutno delam neko skripto za vnos podatkov v bazo. Pred vnosom hočem preveriti ali je ta uporabnik to stvar že komentiral (gre se pač za neke komentarje) in, če je njegov komentar preprosto posodobiti drugače pa vnesti novo vrstico. Vse lepo in prav do tukaj vendar mi prekleta skripta pri vnosu v tabelo ali pa pri updejtu vnos preprosto potroji. Torej dobim namesto enega komentarja kar 3 (seveda identične).
Koda, ki to dela je tukaj:
Torej zakaj mi ta stvar potroji vnose?
Koda, ki to dela je tukaj:
$poglej = mysql_query("SELECT * FROM igre_mnenja WHERE id_igre = '$id_igre' AND id_uporabnika = '$user_id'") or die(mysql_error()); if (mysql_num_rows($poglej) == 0) { mysql_query("INSERT INTO igre_mnenja (id_igre,id_uporabnika,mnenje) VALUES ('$id_igre','$user_id','$mnenje')") or die(mysql_error()); } else { mysql_query("UPDATE igre_mnenja SET mnenje = '$mnenje' WHERE id_uporabnika = '$user_id' AND id_igre = '$id_igre'") or die(mysql_error()); }
Torej zakaj mi ta stvar potroji vnose?
http://www.r00li.com
krho ::
OMG use PDO.
Ne vem sicer kateri editor uporabljaš, daj zaženi skripto preko debuggerja.
Ne vem sicer kateri editor uporabljaš, daj zaženi skripto preko debuggerja.
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net
t3hn0 ::
ocitno ti stavek
if (mysql_num_rows($poglej) == 0)
ne koristi najbolje...jaz bi premislil na tej tocki.
za taka preverjanja jaz kar fetcham zadeve iz baze, za preverjanje stevila rezultatov pa sem udomacil mysql_affected_rows()...torej v mojem primeru bi to zgledalo tako:
p.s. in dela
if (mysql_num_rows($poglej) == 0)
ne koristi najbolje...jaz bi premislil na tej tocki.
za taka preverjanja jaz kar fetcham zadeve iz baze, za preverjanje stevila rezultatov pa sem udomacil mysql_affected_rows()...torej v mojem primeru bi to zgledalo tako:
$poglej = mysql_fetch_array ( mysql_query("SELECT * FROM igre_mnenja WHERE id_igre = '$id_igre' AND id_uporabnika = '$user_id'") );
if (mysql_affected_rows() == 0) // vrne stevilo vrstic prejsnje mysql operacije
{
mysql_query("INSERT INTO igre_mnenja (id_igre,id_uporabnika,mnenje) VALUES ('$id_igre','$user_id','$mnenje')") or die(mysql_error());
}
else
{
mysql_query("UPDATE igre_mnenja SET mnenje = '$mnenje' WHERE id_uporabnika = '$user_id' AND id_igre = '$id_igre'") or die(mysql_error());
}
p.s. in dela
^.^
roli ::
Hmmm dela ja - ampak tudi moja stvar dela. Ravnokar sem opazil, da se to podvajanje pojavi samo pri eni igri v bazi - čeprav je bila vnešena na isti način in se praktično ne razlikuje od drugih. Torej ni mi jasno zakaj drugje dela normalno in ne podvaja vnosov ampak tam pa jih.
http://www.r00li.com
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | php-localhost!Oddelek: Omrežja in internet | 803 (593) | technolog |
» | PHP - pomočOddelek: Izdelava spletišč | 1863 (1507) | BlueRunner |
» | Pošiljanje v mysql bazoOddelek: Izdelava spletišč | 1089 (1023) | zaj_tam |
» | PHP help!Oddelek: Programiranje | 1735 (1573) | rc-car |
» | Zakaj? (php & mySQL)Oddelek: Programiranje | 1227 (1154) | darh |