shagg0r Skrevet 26. september 2004 Del Skrevet 26. september 2004 har en mysql database la oss kalle den email. Så registrerer jeg blant annet email i tabellen brukere adresser og de har jeg angitt at skal være unike i mysql. Så det jeg lurer på er hvordan jeg på en enkel måte kan sjekke om $emailadressen som folka skriver inn i en form matcher med noen av de som allerede ligger i databasen. Trenger kunn hjelp til spørringen og if setningen hvis noen har lyst å hjelpe meg:) Lenke til kommentar
jorgis Skrevet 26. september 2004 Del Skrevet 26. september 2004 $query = mysql_query("SELECT * FROM tabellnavn WHERE email = '" . $emailhentetfraform . '""); if (mysql_num_rows($query)) { echo "Sørri, men eposten er allerede regget. Et fisk."; } else { registrer_bruker(); } Lenke til kommentar
Inge_P Skrevet 26. september 2004 Del Skrevet 26. september 2004 (endret) Det kommer nok noen guruer snart med riktig svar og mer effektiv kode, men dette burde funke. SELECT count(*) FROM tabell WHERE emailadr = $forminput Hvis count(*) = 0, så fins ikke epostadressen. EDIT: ja se der ja. Endret 26. september 2004 av need4sms Lenke til kommentar
shagg0r Skrevet 26. september 2004 Forfatter Del Skrevet 26. september 2004 SELECT count(*) FROM tabell WHERE emailadr = $forminput Skjønte ikke helt den jeg? $spørring ="SELECT count(*) FROM tabell WHERE emailadr = $forminput" vil hele spørringen bli 0 hvis email adressen ikke finnes? Lenke til kommentar
Inge_P Skrevet 26. september 2004 Del Skrevet 26. september 2004 $spørring = @MYSQL_QUERY("SELECT count(*) FROM tabell WHERE emailadr = '".$forminput."'"); $antall_identiske_eposter = @MYSQL_RESULT($spørring,0,count(*)); Istedet for å sette det lik "$antall_identiske_eposter", så kan du sette det rett inn i en if setning. Jeg har ikke prøvd det ut, men mener det vil funke. Lenke til kommentar
shagg0r Skrevet 26. september 2004 Forfatter Del Skrevet 26. september 2004 thanx skal prøve ut forslagene i morgen når jeg hr fått meg litt søvn Lenke til kommentar
jorgis Skrevet 26. september 2004 Del Skrevet 26. september 2004 Hvorfor ikke bare kjøre en enkel spørring som sjekker om den i det hele tatt finner noen med den aktuelle epostadressen, istedenfor å kjøre en slitsom count()-spørring? mysql_num_rows() returnerer jo antall rader spørringen finner uansett. Mitt eksempel vil være det raskeste, men for sikkerhets skyld kan du hekte på LIMIT 2 på slutten av spørringen, slik at den ikke tar hele tabellen hvis noe går galt. Lenke til kommentar
shagg0r Skrevet 27. september 2004 Forfatter Del Skrevet 27. september 2004 jorgis: jeg lurer på om du har en skriveleif i scriptet for det fungerer ikke er det riktig med alle de tødlene? som står rundt $emailhentetfraform og de punktumene? Skjønte ikke helt sammenhengen der Og hvordan blir det når jeg legger på limit 2 i spørringen? $query = mysql_query("SELECT * FROM tabellnavn WHERE email = '" . $emailhentetfraform . '""); if (mysql_num_rows($query)) { echo "Sørri, men eposten er allerede regget. Et fisk."; } else { registrer_bruker(); } Lenke til kommentar
jorgis Skrevet 27. september 2004 Del Skrevet 27. september 2004 (endret) Du har husket å koble til databasen først? Husket å gi $emailhentetfraform en verdi? registrer_bruker() er forresten bare tullekode som du skal bytte ut med koden din som setter inn brukeren. Endret 27. september 2004 av jorgis Lenke til kommentar
shagg0r Skrevet 27. september 2004 Forfatter Del Skrevet 27. september 2004 (endret) jada jeg vet det er ikek så noob har koplet til databasen alt fungerer greit untatt funksjonen å sjekke om det er en epost i databasen som er lik eposten brukeren skriver inn Jeg testet ut koden din for å sjekke om jeg kunne få den til å fungere alene: <?php include ('../genius_oppkopling_mysql.php'); $kundenr ="3-3456"; $query = mysql_query("SELECT * FROM kunder WHERE kundenr= '" . $kundenr . '""); if (mysql_num_rows($query)) { echo "Sørri, men eposten er allerede regget. Et fisk."; } else { print "lagrer bruker"; } //Kople fra databasen mysql_close($connection); ?> Feilmeldingen jeg fikk var: Parse error: parse error, unexpected $ in /hsphere/local/home/arbeidsr/registrering.arbeidsrett.org/test.php on line 16 Endret 27. september 2004 av shagg0r Lenke til kommentar
jorgis Skrevet 27. september 2004 Del Skrevet 27. september 2004 Du har husket å fylle inn navnet på tabellen du kjører spørringen mot? ...og navnet på feltet som skal inneholde emailen? Bytt ut $query = mysql_query("SELECT * FROM tabellnavn WHERE email = '" . $emailhentetfraform . '""); med $query = mysql_query("SELECT * FROM tabellnavn WHERE email = '" . $emailhentetfraform . '"") or die("Error in query: mysql_error()); Lenke til kommentar
shagg0r Skrevet 27. september 2004 Forfatter Del Skrevet 27. september 2004 Tabelnavn, feltnavn alt skal være riktig prøvde ut det siste du sa der men fikk samme feilmeldingen som over Lenke til kommentar
diskvask Skrevet 27. september 2004 Del Skrevet 27. september 2004 Ser ut som om det er et gåsetegn (") for mye bakserst i mysql_query. En annen måte å sjekke duplikate data kunne vært å rett og slett kjørt en INSERT, for så å fange opp/behandle eventuelle feilmeldinger. Lenke til kommentar
jorgis Skrevet 27. september 2004 Del Skrevet 27. september 2004 bytt ut $query = mysql_query("SELECT * FROM kunder WHERE kundenr= '" . $kundenr . '""); med $query = mysql_query("SELECT * FROM kunder WHERE kundenr= '" . $kundenr . "'"); Bommet litt på fnuttene på slutten, og det var bare det at jeg plasserte en enkeltfnutt innenfor en dobbeltfnutt. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå