Avatar billede Hamder83 Praktikant
09. november 2005 - 14:23 Der er 16 kommentarer og
1 løsning

Min kode virker ikke, (Ny med PHP)

Hey,

Når jeg bruger denne kode, så opretter den fint en ny række i databsen, men felterne er tomme ...



<?
$result=mysql_query("SELECT navn FORM dtw where username='".$_POST["navn"]."'");
$row=mysql_fetch_array($result);
if($row["navn"]){
    echo "brugeren findes allerede";
}else{
        mysql_query("INSERT INTO dtw (navn, pass) VALUES('".$_POST["navn"]."','".$_POST["pass"]."');");
}
?>
Avatar billede showsource Seniormester
09. november 2005 - 14:31 #1
Det er altid godt med en "or die (mysql_error())"
mysql_query("INSERT INTO dtw (navn, pass) VALUES('".$_POST["navn"]."','".$_POST["pass"]."');") or die (mysql_error());

Og de ter sikkert din ; som er fejlen.
mysql_query("INSERT INTO dtw (navn, pass) VALUES('".$_POST["navn"]."','".$_POST["pass"]."')") or die (mysql_error());
Avatar billede kdjweb Nybegynder
09. november 2005 - 15:52 #2
<?
$result = mysql_query("SELECT navn FROM dtw where username=$_POST['navn']");";
while($row = mysql_fetch_array($result));
if($_POST['navn'] == $row['navn']){
    echo "brugeren findes allerede";
} else {
    mysql_query("INSERT INTO dtw (navn, pass) VALUES('$_POST["navn"]','$_POST["pass"]')");
}
?>

ikke testet men skulle virke
Avatar billede kdjweb Nybegynder
09. november 2005 - 15:53 #3
<?
$result = mysql_query("SELECT navn FROM dtw where username=$_POST['navn']");
while($row = mysql_fetch_array($result));
if($_POST['navn'] == $row['navn']){
    echo "brugeren findes allerede";
} else {
    mysql_query("INSERT INTO dtw (navn, pass) VALUES('$_POST["navn"]','$_POST["pass"]')");
}
?>

undskyld
Avatar billede showsource Seniormester
09. november 2005 - 16:02 #4
Vil nu mene dine query's vil fejle, kdjweb,

<?php
$result = mysql_query("SELECT `navn` FROM `dtw` WHERE `username` = '". $_POST["navn"] ."'") or die (mysql_error());

if(mysql_num_rows($result) != 0) {
    echo "brugeren findes allerede";
} else {
    mysql_query("INSERT INTO `dtw` (`navn`, `pass`) VALUES('". $_POST["navn"] ."','". $_POST["pass"] ."')") or die (mysql_error());
    echo "Du er nu oprettet";
}
mysql_free_result($result);
?>
Avatar billede showsource Seniormester
09. november 2005 - 16:04 #5
Og nu du skriver du er ny i php,
du bør altid tjekke den værdi som hentes/sammenlignes med i query'en
Brugen af ' kan jo ændre din query fuldstændig!

Normalt escaper php tegn som ' og ", men det er ikke altid tilfældet!.

http://www.eksperten.dk/artikler/190
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:10 #6
jep du har ret.. min vil fejle

<?
$result = mysql_query("SELECT navn FROM dtw where username=$_POST['navn']");
while($row = mysql_fetch_array($result));
  if($_POST['navn'] == $row['navn']){
    echo "brugeren findes allerede";
  } else {
    mysql_query("INSERT INTO dtw (navn, pass) VALUES('$_POST["navn"]','$_POST["pass"]')");
  }
}
?>

men nu vil den ikke
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:14 #7
argh..

<?
$result = mysql_query("SELECT navn FROM dtw where username='$_POST[navn]'");
while($row = mysql_fetch_array($result)) {
  if($_POST['navn'] == $row['navn']){
    echo "brugeren findes allerede";
  } else {
    mysql_query("INSERT INTO dtw (navn, pass) VALUES($_POST['navn'],$_POST['pass'])");
  }
}
?>

grr :P nu er den der
Avatar billede showsource Seniormester
09. november 2005 - 16:22 #8
næsten :O)

mysql_query("INSERT INTO dtw (navn, pass) VALUES('$_POST[navn]','$_POST[pass]')");
eller
mysql_query("INSERT INTO dtw (navn, pass) VALUES('". $_POST['navn'] ."','". $_POST['pass'] ."')");
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:23 #9
behøves ikke
mysql_query("INSERT INTO dtw (navn, pass) VALUES($_POST['navn'], $_POST['pass'])"); er nok
Avatar billede showsource Seniormester
09. november 2005 - 16:25 #10
Skal vi vædde nogle point? :O)
Hvis det er tal, er det ok, men når det er en streng, skal du omkranse værdien med '
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:25 #11
doh, :P jeg poster hele tiden den forkerte kode
mysql_query("INSERT INTO dtw (navn, pass) VALUES('$_POST[navn]','$_POST[pass]')");
Avatar billede showsource Seniormester
09. november 2005 - 16:25 #12
eller, måske det vil virke, (tvivler), men korrekte måde er at bruge ' til strenge
Avatar billede showsource Seniormester
09. november 2005 - 16:26 #13
nåhh, ok :O) :O))))))))
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:26 #14
jeg synes da den er omkranset? :P
Avatar billede kdjweb Nybegynder
09. november 2005 - 16:28 #15
der er mange måder og gøre det på :P og alle er korrekte. kommer jo bare an på hvordan man skriver :P
Avatar billede Hamder83 Praktikant
13. september 2010 - 15:46 #16
kdjweb smid svar og du får points.
Avatar billede kdjweb Nybegynder
14. september 2010 - 08:51 #17
Svar :-)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester