21. april 2010 - 18:14
Der er
14 kommentarer og 1 løsning
INSERT INTO fejl ?
Har et problem med min brugeroprettelese form og indsættelse i databasen.. her er Html formen: <form action=\"indsaet.php\" method=\"post\"> <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\"> <tr><td><font face=\"tahoma\" size=\"2\"><b>Brugernavn: </b> </font></td><td> <input type=\"text\" name=\"brugernavn\"> *</td></tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Password:</b> </font></td><td><input type=\"password\" name=\"password\"> *</td><tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Gentag password:</b> </font></td><td><input type=\"password\" name=\"gentag\"> *</td><tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Fornavn:</b> </font></td><td> <input type=\"text\" name=\"fornavn\"> *</td></tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Efternavn:</b> </font></td><td> <input type=\"text\" name=\"efternavn\"> *</td></tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Erhvervsdrivende/privatperson:</b> </td> <td> <select name=\"erhverv\" size=\"1\"> <option name=\"erhvervsdrivende\">Erhvervsdrivende</option> <option name=\"privatperson\">Privatperson</option> </select> * </td> </tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>CPR/CVR:</b> </td><td><input type=\"text\" name=\"cpr_cvr\"> *</td></tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>Adresse:</b> </td><td><font face=\"tahoma\" size=\"2\">Gadenavn: <input type=\"text\" name=\"gadenavn\"> * <font face=\"tahoma\" size=\"2\">Gadenr: <input type=\"text\" name=\"gadenr\"> *</td></tr> <tr><td> </td></tr> <tr><td><font face=\"tahoma\" size=\"2\"><b>By:</b> </td><td><font face=\"tahoma\" size=\"2\">Postnr: <input type=\"text\" name=\"postnr\"> * <font face=\"tahoma\" size=\"2\"> Bynavn: <input type=\"text\" name=\"by\"> *</td></tr> </table> <p> <input type=\"submit\" value=\"Opret bruger\"> </form> Her er Indsaet.php: $brugernavn = $_POST["brugernavn"]; $password = $_POST["password"]; $gentag = $_POST["gentag"]; $erhverv = $_POST["erhverv"]; $fornavn = $_POST["fornavn"]; $efternavn = $_POST["efternavn"]; $gadenavn = $_POST["gadenavn"]; $gadenr = $_POST["gadenr"]; $by = $_POST["by"]; $postnr = $_POST["postnr"]; $cpr_cvr = $_POST["cpr_cvr"]; $errorCount = 0; $tjek = "SELECT brugernavn FROM brugere WHERE brugernavn = '". $_POST['brugernavn']."'"; $resultat = mysql_query($tjek); if($fornavn == "") { echo "Du skal angive dit fornavn.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($efternavn == "") { echo "Du skal angive dit fornavn.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($erhverv == "") { echo "Du skal angive erhverv.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($gadenavn == "") { echo "Du skal angive dit gadenavn.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($gadenr == "") { echo "Du skal angive dit gade nummer.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($by == "") { echo "Du skal angive din by.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($postnr == "") { echo "Du skal angive dit Postnummer.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($cpr_cvr == "") { echo "Du skal angive dit CPR/CVR nummer.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($brugernavn == "") { echo "Du skal indtaste et brugernavn.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($password == "") { echo "Du skal indtaste et password.<p> <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; $errorCount++; } if($gentag == "" || $gentag != $password) { echo "De to passwordfelter skal have ens indhold.<p> <a href=\"java script:history.back(-1)\">Tilbage</a>"; $errorCount++; } if(mysql_num_rows($resultat) == 0) { if($errorCount == 0) { mysql_connect("xxxxxxx","xxxxx","xxxxxxx"); mysql_select_db("xxxxxx"); $password = MD5($password); $insert = mysql_query("INSERT INTO brugere (brugernavn,password,erhverv,fornavn,efternavn,gadenavn,gadenr,by,postnr,cpr_cvr) VALUES ('$brugernavn','$password','$erhverv','$fornavn','$efternavn','$gadenavn','$gadenr','$by','$postnr','$cpr_cvr')"); if(!$insert) echo "Der skete en fejl. Prøv igen. <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; else echo "Brugeren blev oprettet. <a href=\"index.php\">Forside</a><br>"; } } else { echo "brugernavnet er optaget!"; } Den udskriver min egen fejl medd. echo "Der skete en fejl. Prøv igen. <a href=\"java script:history.back(-1)\">Tilbage</a><br>"; ????
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
21. april 2010 - 18:23
#1
by er et reserveret ord i mysql. Omdøb, eller brug ` omkring navnet: `by`
21. april 2010 - 18:26
#2
$insert = mysql_query("INSERT INTO brugere (brugernavn,password,erhverv,fornavn,efternavn,gadenavn,gadenr,by,postnr,cpr_cvr) VALUES ('$brugernavn','$password','$erhverv','$fornavn','$efternavn','$gadenavn','$gadenr','$by','$postnr','$cpr_cv') or die (mysql_error ());
21. april 2010 - 18:26
#3
showsource har ret... Den overså jeg... or die (mysql_error ()) er en ganske god ide til at få fejl skrevet ud så du kan læse hva man har lavet af fejl...
21. april 2010 - 21:26
#4
Det har du sørme også ret i Source ;) Havde slet ikke overvejet den mulighed . Jo. Plejer også at anvende "or die" efter mine sql sætninger, men den var glemt denne gang . Source, du smider bare et svar hvis du vil have point. :) Og hvis nogen af jer gider hjælpe endnu en gang, sidder jeg med et andet mindre problem her: if($erhvervsdrivende == "erhvervsdrivende") { echo "<tr><td><font face=\"tahoma\" size=\"2\"> <b>Firmanavn: </b></td><td><font face=\"tahoma\" size=\"2\">" . $userArray["firmanavn"] . "</td></tr>"; } else { echo " "; } Altså hvis brugeren er registreret som erhvervsdrivende skal den udskrive noget, men hvis ikke skal den ikke udskrive noget? Den funger ikke rigtig.
21. april 2010 - 21:54
#5
Det er vel if($userArray["erhvervsdrivende"] == "erhvervsdrivende") ???
21. april 2010 - 22:10
#6
Hov havde ikke fået variablen med i mit spørgsmål.. den er: $erhvervsdrivende = ("SELECT erhverv FROM brugere WHERE id='$_SESSION[user_id]'"); Desværre det virkede ikke Source, havde også prøvet at skrive det på den måde selv.. ? nåh ja og feltet der skal henvises hedder erhverv og ikke erhvervsdrivende.. uanset hvad får du selvfølgelig dine point
21. april 2010 - 22:54
#7
$sql = "SELECT erhverv FROM brugere WHERE id = ".$_SESSION["user_id"]; $erhvervsdrivende = mysql_result(mysql_query($sql),0);
21. april 2010 - 23:24
#8
$erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = ".$_SESSION["user_id"]; $erhvervsdrivende = mysql_result(mysql_query("$erhvervsdrivende_sql")); ?? får fejlmeddelse: Warning: Wrong parameter count for mysql_result()
21. april 2010 - 23:49
#9
Du glemmer 0 i mysql_result() $erhvervsdrivende = mysql_result(mysql_query("$erhvervsdrivende_sql"),0); Hvis nu vi siger at du også vælger id, altså id og erhverv echo mysql_result(mysql_query($sql),0,0); // id echo mysql_result(mysql_query($sql),0,01); // erhverv eller echo mysql_result(mysql_query($sql),0,0); // id
22. april 2010 - 00:04
#10
$erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = '$_SESSION["user_id"]'"; $erhvervsdrivende = mysql_result(mysql_query("$erhvervsdrivende_sql"),0); virker heller ikke.. må have gjort noget andet galt ? Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING
22. april 2010 - 00:06
#11
Der kom lige en kunde i taxa'en !!! Du skal ikke ha' anførselstegn $erhvervsdrivende = mysql_result(mysql_query($erhvervsdrivende_sql),0);
22. april 2010 - 00:09
#12
mysql_result($sql,0,0) er første første row og første felt. Du kan også mysql_result($sql,0,"erhverv") mysql_result($sql,1,0) er andet row, første felt
22. april 2010 - 00:34
#13
Ved ikke hvad jeg gør galt .. har aldrig brugt mysql_result før.. arning: Wrong parameter count for mysql_query() in /data/cluster/free1go/p/o/www.postballerup.1go.dk/privat.php on line 14 Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /data/cluster/free1go/p/o/www.postballerup.1go.dk/privat.php on line 14 får jeg nu..
22. april 2010 - 01:48
#14
Jeg overså også " i dit eksempel til query $erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = '$_SESSION["user_id"]'"; Når du bruger " eller ' i em streng, skal du "hoppe ud" af phpkode: $erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = '".$_SESSION["user_id"]."'"; Jeg går ud fra at $_SESSION["user_id"] er et tal ? $erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = ".$_SESSION["user_id"]; Når det er et tal skal man faktisk ikke bruge ' i en query. Og fpr nu at sikre det er et tal: $erhvervsdrivende_sql = "SELECT erhverv FROM brugere WHERE id = ".(int)$_SESSION["user_id"]; $erhvervsdrivende = mysql_result(mysql_query($erhvervsdrivende_sql),0); Men, det er måske en ide at tjekke du rent faktisk får et row i din query: $row = mysql_query($erhvervsdrivende_sql) or die (mysql_error()); if(mysql_num_rows($row) == 1) { $erhvervsdrivende = mysql_result($row,0); if($erhvervsdrivende == "erhvervsdrivende") { echo "JUHU"; } }
25. april 2010 - 23:32
#15
Hey showsource, tak for hjælpen. Fandt dog ud af hvad problemet var. if($erhvervsdrivende == "erhvervsdrivende") skulle rettes til if($erhvervsdrivende == "Erhvervsdrivende") Altså et stort E i stedet for det lille.. irreterende fejl, men tak fordi du tog dig tid til at hjælpe :)
Vi tilbyder markedets bedste kurser inden for webudvikling