$k$ Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 Jeg har fulgt en tutorial på hvordan jeg skal lage et brukersystem. Det er nermest copy-paste fra tutorialen, men jeg har gjort et par små forandringer.. Uansett, når jeg har skrevet inn informasjonen,brukernavn, passord, email osv.., og trykker register, får jeg denne meldingen: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '')' at line 1" Hva kan være problemet her? Etter som jeg fårstår er det ikke selve php-scriptet som har noen problemer, eller? takk Lenke til kommentar
Ernie Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 Det hadde vært litt kjekt å se hele sql-spørringen. ') sier meg nemlig svært lite om hva problemet kan være ... Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 Nå er jeg veldig ny på emnet, såå.. hva er en sql-spørring? Lenke til kommentar
trrunde Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 sql spørringen er ofte noe som står inni en mysql_query, hvis du legger på or die(mysql_error()); bak hver eneste sql spørring du gjør kan du kanskje finne ut akkuratt hva slags spørring som er gal Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 aha.. skal vi se: Jeg har en config.php som blir includert øverst på alle sidene: <?php $l = mysql_connect ( "mysql.hosted.servetheworld.net" , "bruker" , "pass" ) or die("Error connecting: <br><br>".mysql_error()); mysql_select_db( "database" ) or die("Error getting db: <br><br>".mysql_error()); ?> Øverst i register.php include 'config.php'; //Are they just getting here or submitting their info? if (isset($_POST["username"])) { $username = $_POST["username"]; $password = $_POST["password"]; $cpassword = $_POST["cpassword"]; $name = $_POST["name"]; $email = $_POST["email"]; $ip = $_SERVER['REMOTE_ADDR']; $date = date("d, m y"); //Was a field left blank? if($username==NULL|$password==NULL|$cpassword==NULL|$email==NULL|$name==NULL) { echo "A field was left blank."; }else{ //Do the passwords match? if($password!=$cpassword) { echo "Passwords do not match"; }else{ //Has the username or email been used? $checkuser = mysql_query("SELECT username, COUNT(*) FROM users WHERE username='$username'"); $checkemail = mysql_query("SELECT email, COUNT(*) FROM users WHERE email='$email'"); if ($checkemail>0|$checkuser>0) { echo "The username or email is already in use"; }else{ //Everything seems good, lets insert. $query = "INSERT INTO users (Username, Password, Email, IP, Date, Name) VALUES('$username','$password','$email','$IP','$Date','$Name)"; mysql_query($query) or die(mysql_error()); echo "The user $username has been successfully registered."; } } takk Lenke til kommentar
Ernie Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 linje nr.5 nedenfra ("VALUES('$username','$password','$email','$IP','$Date','$Name)";") er feil. Det bør stå '$Name' i stedet for '$Name Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 (endret) Tuusen takk!! Edit: Nytt problem... Hvordan skal jeg få til at du ikke får registrere samme brukernavn to ganger? dette har jeg i koden: //Has the username or email been used? $checkuser = mysql_query("SELECT username, COUNT(*) FROM Users WHERE username='$username'"); $checkemail = mysql_query("SELECT email, COUNT(*) FROM Users WHERE email='$email'"); if ($checkemail>0|$checkuser>0) { echo "The username or email is already in use"; Men det virker ikke.. Forslag? Takk Endret 1. januar 2006 av $k$ Lenke til kommentar
Axentrix Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 Tuusen takk!! Edit: Nytt problem... Hvordan skal jeg få til at du ikke får registrere samme brukernavn to ganger? dette har jeg i koden: //Has the username or email been used? $checkuser = mysql_query("SELECT username, COUNT(*) FROM Users WHERE username='$username'"); $checkemail = mysql_query("SELECT email, COUNT(*) FROM Users WHERE email='$email'"); if ($checkemail>0|$checkuser>0) { echo "The username or email is already in use"; Men det virker ikke.. Forslag? Takk 5368339[/snapback] Du må lese ut informasjonen med feks mysql_fetch_array... //Has the username or email been used? $checkuser = mysql_query("SELECT username, COUNT(*) FROM Users WHERE username='$username'"); if($line = mysql_fetch_array($checkuser, MYSQL_ASSOC)) {echo "Error, brukernavnet er opptatt";} $checkemail = mysql_query("SELECT email, COUNT(*) FROM Users WHERE email='$email'"); if($line = mysql_fetch_array($checkemail, MYSQL_ASSOC)) {echo "Error, email er opptatt";} Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 (endret) da får jeg følgende feil: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 22 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 26 Line 17 - 29: if($password!=$cpassword) { echo "Passwords do not match"; }else{ //Has the username or email been used? $checkuser = mysql_query("SELECT username, COUNT(*) FROM Users WHERE username='$username'"); if($line = mysql_fetch_array($checkuser, MYSQL_ASSOC)) {echo "Error, brukernavnet er opptatt";} $checkemail = mysql_query("SELECT email, COUNT(*) FROM Users WHERE email='$email'"); if($line = mysql_fetch_array($checkemail, MYSQL_ASSOC)) {echo "Error, email er opptatt"; }else{ Endret 1. januar 2006 av $k$ Lenke til kommentar
Axentrix Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 (endret) da får jeg følgende feil: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 22 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 26 5368635[/snapback] Du har connecta med mysql_connect og valgt database med mysql_select_db? edit: la til spørsmålstegn Endret 1. januar 2006 av Axentrix Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 da får jeg følgende feil: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 22 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /register.php on line 26 5368635[/snapback] Du har connecta med mysql_connect og valgt database med mysql_select_db 5368916[/snapback] ja...? Lenke til kommentar
kakkle Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 (endret) Jeg ville vel forsåvidt heller sjekket med mysql_num_rows: if(mysql_num_rows($checkuser) > 0) {echo "Error, brukernavnet er opptatt";} og samme for emailsjekken. Det er også greit å legge på en or die(mysql_error()); rett etter mysql_query Den feilen får du vel opp, fordi brukernavn / Email ikke eksisterer, dermed blir $checkuser / $checkemail satt til false (Altså ingen mysql result resource) EDIT: Uff... Ble mye fram og tilbake her... Endret 1. januar 2006 av kakkle Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 (endret) Jeg ville vel forsåvidt heller sjekket med mysql_num_rows: if(mysql_num_rows($checkuser) > 0) {echo "Error, brukernavnet er opptatt";} og samme for emailsjekken. Det er også greit å legge på en or die(mysql_error()); rett etter mysql_query Den feilen får du vel opp, fordi brukernavn / Email ikke eksisterer, dermed blir $checkuser / $checkemail satt til false (Altså ingen mysql result resource) EDIT: Uff... Ble mye fram og tilbake her... 5369090[/snapback] Det kan stemme, men hva må jeg da gjøre? bare ignorere den? Edit: Prøvde med num_rows også, men det ble samme melding: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /register.php on line 22 Edit2: Prøvde å ignorer feilmeldingene, men jeg kan fortsatt lage flere brukere med både samme navn og epost.. Endret 1. januar 2006 av $k$ Lenke til kommentar
kakkle Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 Sjekk med den koden jeg skrev over (Med mysql_num_rows), så skal det funke greit Mysql_num_rows teller antall rader du får ut fra spørringen mysql_num_rows For å bruke mysql_error() : $checkuser = mysql_query("SELECT username, COUNT(*) FROM Users WHERE username='$username'") or die(" Feil i spørring ! <br> Mysql sa: <br>".mysql_error()); Lenke til kommentar
kakkle Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 (endret) Edit:Prøvde med num_rows også, men det ble samme melding: Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /register.php on line 22 Da må du sjekke spørringen med mysql_error(), bruk det jeg la ut i posten over. Det kan være greit å legge spørringen til en veriabel først, slik at du lettere kan skrive ut akkurat det som sendes til mysql: $query = "SELECT username, COUNT(*) FROM Users WHERE username='$username'"; $checkuser = mysql_query($query) or die(" Feil i spørring ! <br> Spørring: $query<br> Mysql sa: <br>".mysql_error()); EDIT: Og du kan droppe COUNT(*) Endret 1. januar 2006 av kakkle Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 (endret) Endelig forandring! Nå fikk jeg svar på hva som er galt. Feil i spørring ! Mysql sa: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause Forstår du noe av dette? Lurer på om det kanskje har noe med den COUNT(*) greia inni...? Edit: Prøver nå med å droppe COUNT Endret 1. januar 2006 av $k$ Lenke til kommentar
$k$ Skrevet 1. januar 2006 Forfatter Del Skrevet 1. januar 2006 Det virker! $checkuser = mysql_query("SELECT email FROM Users WHERE username='$username'"); if($line = mysql_fetch_array($checkuser, MYSQL_ASSOC)) {echo "Error, brukernavnet er opptatt"; }else{ $checkemail = mysql_query("SELECT email FROM Users WHERE email='$email'"); if($line = mysql_fetch_array($checkemail, MYSQL_ASSOC)) {echo "Error, email er opptatt"; }else{ Tusen takk alle sammen! Lenke til kommentar
Torbjørn Skrevet 1. januar 2006 Del Skrevet 1. januar 2006 (endret) *slettet* svarte litt utdatert Endret 1. januar 2006 av Torbjørn 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å