04. oktober 2005 - 09:29Der er
17 kommentarer og 1 løsning
Error i sql setning
Hvad er der galt med min kode. den virker ikke efter jeg har sat min sql setning på. <? Db::Conn("open"); $SQL = "SELECT * FROM db_users"; $loadin = mysql_query($SQL) or die("There is an Error in the database"); while ($Get = mysql_fetch_object($loadin)){
if($_POST['username'] != "" and $_POST['password'] != "" and $_POST['passwordtest'] != "" and $_POST['name'] != "" and $_POST['password'] == $_POST['passwordtest'] and $_POST['username'] != $Get->username){
<? if($_POST['username'] != "" and $_POST['password'] != "" and $_POST['passwordtest'] != "" and $_POST['name'] != "" and $_POST['password'] == $_POST['passwordtest'] and $_POST['username'] != $Get->username){
Hvilken fejlmeddelelse udskriver det, når det sker? Helt specifikt - hvad er fejlen? - Oprettes dataerne i tabellen i database? - Hvis ikke, hvilken meddelelse giver mysql_error() så? - Hvis de oprettes, får du så en anden fejlmeddelelse? Hvilken?
Jo jeg får igen fejl meddegelse desvære der er noget galt med dette kode her på min side..... Alså db open... tror ikke rasten af koden er gald for while????
<? Db::Conn("open"); $SQL = "SELECT * FROM db_users"; $loadin = mysql_query($SQL) or die("There is an Error in the database"); while ($Get = mysql_fetch_object($loadin)){
if($_POST['username'] != "" and $_POST['password'] != "" and $_POST['passwordtest'] != "" and $_POST['name'] != "" and $_POST['password'] == $_POST['passwordtest'] and $_POST['username'] != $Get->username){
Men jeg skal opne databasen og bruge informationerne i $Get->username til at tjekke med det felt som heder $_POST['username'] så vis de er ens så må man ikke oprette og skal lave username om... men der er problmer når jeg sætter db koden ind
Så må du lige gøre sådan, at der udskrives en fejlmeddelelse. Ellers arbejder vi i blinde på sin vis. Kan jo være, at det er i selve din SQL-sætning, at der er en fejl - har vi ikke en jordisk chance for at spotte i så fald.
Så få lige udprintet en fejlmeddelelse, tak! :-)
Jeg ville måske optimere din kode en smule, hvis det var. Du bruger en while, så vidt jeg kan se, for at tjekke at brugernavnet ikke er optaget.
Du kan slippe for en while-sætning, ved at udføre en SQL-sætning, hvor du efterspørger alle brugere med brugernavnet $_POST['username']. Herefter kan du udføre "en optælning" via f.eks. mysql_num_rows(). mysql_num_rows() returnere egentligt blot antallet af rækker, der er fundet. Dvs. hvis brugernavnet ikke blev fundet i listen, retunere den 0.
Ok nu har jeg reset koden så den virker men ikke tjerkker i databasen om der er nogle som heder det samme ok?.
Her er koden som virker unden tjek i databasen...
<? if($_POST['username'] != "" and $_POST['password'] != "" and $_POST['passwordtest'] != "" and $_POST['name'] != "" and $_POST['password'] == $_POST['passwordtest']){
Her lige fjernet noget gammel ubrugt kode fra den kode op over. <? if($_POST['username'] == $_SESSION['user_tjek']){ ?> <tr> <td> The <strong>"Username:"</strong> is all ready taken? </td> </tr> <? } ?>
Du må komme med en fejlmeddelelse, hvis du vil have hjælp. Jeg har hverken tid eller lyst til at starte en gætte-konkurrence på hvad fejlen kan være. Du må komme med en fejlmeddelelse. Det kunne nemt være en fejl i din SQL-sætning, men har vi som sagt ingen jordisk chance for at se efter.
- frande
Synes godt om
Ny brugerNybegynder
Din løsning...
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.