Gå til innhold

sjekke mot foreliggende data i mysql før lagre


Anbefalte innlegg

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
Videoannonse
Annonse

$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

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

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

jada jeg vet det er ikek så noob :D 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 av shagg0r
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...