mysql syntax error

Katzenbauer

Erfahrenes Mitglied
Ich bekomme bei diesem Scriptauszug einen mysql Syntax Error. Ich finde ihn nur nicht. Kann mir da jemand behilflich sein:
PHP:
$num = 0;
    while ($num>0) {
	$k_laend = rand(1,100);
	$k_graf = rand(1,100);
	$k_burg = rand(1,10);
	$query = mysql_query(" SELECT `k_laend`, `k_graf`, `k_burg` FROM `bg_burgen` WHERE `k_laend`='".$k_laend."' AND `k_graf`='".$k_graf."' AND `k_burg`='".$k_burg."'") or die(mysql_error());
    $num = mysql_num_rows($query);
   }
   
   $query = mysql_query(" SELECT `userid` FROM `bb1_users` WHERE `username`='".addslashes($r_username)."'") or die(mysql_error());
   $row = mysql_fetch_array($query);
   $query = mysql_query(" INSERT INTO `bg_burgen`(`userid`, `k_laend`, `k_graf`, `k_burg`) VALUES ('".$row['userid']."', '".$k_laend."', '".$k_graf."', '".$k_burg."'") or die (mysql_error());

Genauer Error:
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
 
Es ist schwer auf diese Art nachzuvollziehen, wo der Fehler genau ist. Du hast hier nämlich drei Statements im Text. Am besten, Du lässt Dir jeweils mal noch das erstellte sql-Query ausgeben. Dazu wärs gut, wenn Du das Statement in einer extra Variablen speicherst und diese dann in mysql_query($sql) einsetzt. Dann kannst Du Dir nämlich per echo ausgeben lassen, wie der sql-String genau lautet.
Also nach dem Schema

PHP:
$sql = "SELECT......";
echo($sql);
$result = mysql_query($sql) or die(mysql_error());

Wenn Du dann diese erstellten sql-Statements hast, dann schau Dir diese nochmal an, vielleicht siehst Du dann den Fehler. Ansonsten könntest Du noch in das die() extra Text einbauen, dass Du siehst, wo abgebrochen wird. Also


PHP:
$sql = "SELECT......";
echo($sql);
$result = mysql_query($sql) or die("(1): ".mysql_error());
 
Hallo!

Versuchs mal damit:

Code:
1)
"SELECT k_laend, k_graf, k_burg FROM bg_burgen WHERE k_laend=".$k_laend." AND k_graf=".$k_graf." AND k_burg=".$k_burg.";"

2)
"SELECT userid FROM bb1_users WHERE username=".addslashes($r_username).";"

3)
"INSERT INTO bg_burgen(userid, k_laend, k_graf, k_burg) VALUES (\'".$row['userid']."\', \'".$k_laend."', '".$k_graf."\', \'".$k_burg."\';"

Gruß Tom
 
Zurück