ugrás a tartalomhoz

Duplikátumok létrejöttének megakadályozása adatbázisban

daniel takacs · 2005. Okt. 2. (V), 17.12
sziasztok

a problema nem tul nagy, de bosszanto.
az adatok feltoltesenel kene egy gyors ellenorzes, hogy az adat (pl. szo) szerepel-e már (pl. szotarban). probalkoztam a mysql_fetch_object-tel (bar nem biztos, hogy pontosan erre valo, szerintem nem egeszen sikerult atlatnom meg a pontos funkciojat:):
<?php
$ellenoriz = mysql_query ("SELECT $m FROM szotar");
$e1 = mysql_fetch_object ($ellenoriz);
if (!e1=$m) {
  //...adatbazisba iras...
}
?>
a $m az aktualis szo, amire kivancsi vagyok.
mi lehet a hiba? (valoszinuleg mashogy kene hozzaalnom, de arra keptelen vagyok:x

halas koszonet a valaszokert.

dani
 
1

duplikátum szűrés

Hojtsy Gábor · 2005. Okt. 2. (V), 17.45
Nos, unique (egyedi) tulajdonságot kell adni a mezőnek, és akkor nem fogja tudni felvenni, ha megpróbálod beilleszteni. Kíséreld meg a mysql_query()-vel felvenni az értéket, ha nem sikerült, akkor a mysql_affected_rows() megmondja, hogy nem történt változás.

Ps. A kódpéldád colorer bbcode elemet használva sokkal élvezhetőbb, és átláthatóbb, javítottam.
2

re:

Anonymous · 2005. Okt. 2. (V), 20.25
[koszi a javitast, eloszor meglepodtem, de tokeletesen igazad van, ez igy sokkal szebb:) (majd egyszer utananezek, hogy mi is ez a bbcode...)]

ne haragudj, hogy ertetlenkedek, de arra gondolsz, hogy a mezotipus megadasanal van egy olyan lehetoseg, hogy unique? es ez megakadalyozza, hogy ket ugyanolyan unique mezo letezzen?
3

Igen

Bártházi András · 2005. Okt. 2. (V), 23.52
Igen, erre gondolt Goba. Beszúráskor kell megnézni, hogy volt-e hibaüzenet, ha volt, mi okozta, ezzel szűrhető a duplikáció. Ha ellenőrzöd, majd beszúrod, a két lépés között lehet egy másik beszúrás is, tehát rossz az algoritmusod.

-boogie-
4

koszonom

daniel takacs · 2005. Okt. 5. (Sze), 20.22
mukodik a unique, koszi.
egy pici kerdes még: mivel lehet megnezni, hogy voltak-e hibauzenetek? (a kiirasa mar megy...)