16. januar 2005 - 15:23Der er
11 kommentarer og 1 løsning
Fejl i sql sætning
Hej
Jeg bruger nedenstående kode i forbindelse med at system, hvor brugere kan logge ind, og evt. ændre deres brugeroplysniger. Koden skal tjekke om der er andre brugere der bruger en indtastet mailadresse.
$rs = mysql_query("SELECT * from kundeTabel WHERE brugerNavn = '$mail' AND kundeId <> '$kundeId'"); if (mysql_num_rows($rs) == 1) { echo "<script type=\"text/javascript\">alert(\"Denne e-mail adresse anvendes i forvejen!\");history.go(-1)</script>"; exit; }
Når jeg laver denne forespørgsel returnerer den 21 i $rs, selvom der ikke er 21 der både har samme kundeId og den indtastede mailadresse. er der nogen der kan se hvad jeg gør forkert.
>> antikat Ja, '<>' er godt nok. det er faktisk standard operatoren for ikke-lig-med i SQL (arvet fra pascal). '!=' er en fix tilføjet i nogle få SQL implementeringer af hensyn til C programmører der ikke ku hitte ud af det.
Fejlen er fundet. Problemet bestod i at der faktisk var flere med samme brugerNavn, da jeg havde lavet en updata sætning, men havde glemt at lave en WHERE hvilket gjorde at de alle fik samme brugerNavn.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.