anpera.net
https://anpera.dyndns.org/phpbb3/

Problem mit der Jägerhütte
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=25&t=4166
Seite 1 von 1

Autor:  Marja [ Mo 03 Dez, 2007 15:55 ]
Betreff des Beitrags:  Problem mit der Jägerhütte

Hilfe... -.-' Ich krieg die Kriese. Wenn ich Schlüssel kaufen will kommt das:

UPDATE items SET owner=1,hvalue=0 WHERE id=

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

Hier mein Schlüsselauszug:

[php]
}elseif ($_GET['op']=="keys1"){
if ($_GET[id]=="new"){

}else{
output("`tMöchtest du einen Schlüssel für dein Haus kaufen?");
}

addnav("Schlüsselkauf?");
addnav("JA","lodge.php?op=keys3&id=".$_GET[id]."");
addnav("Zurück zur Lodge","lodge.php");
}elseif ($_GET['op']=="keys3"){
if ($_GET[id]=="new"){
if ($pointsavailable<50){
output("Du hast nicht genug Punkte übrig.");
}else{
$sql = "SELECT * FROM items WHERE class='Schlüssel' AND value1=".$session[user][house]." ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$nummer=db_num_rows($result)+1;
db_free_result($result);
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description) VALUES ('Hausschlüssel',".$session[user][acctid].",'Schlüssel',".$session[user][house].",$nummer,0,0,'Schlüssel für Haus Nummer ".$session[user][house]."')";
db_query($sql) or die(db_error(LINK));
$session['user']['donationspent']+=50;
output("Du hast jetzt `b$nummer`b Schlüssel für dein Haus! Überlege gut, an wen du sie vergibst.");
}
}else{
if ($pointsavailable<10){
output("Du hast nicht genug Punkte übrig.");
}else{
$nummer=$_GET[id];
$sql="UPDATE items SET owner=".$session[user][acctid].",hvalue=0 WHERE id=$nummer";
db_query($sql);
$session['user']['donationspent']+=10;
output("Der Schlüssel wurde ersetzt.");
}
}
addnav("Zurück zur Lodge","lodge.php");
}
[/php]

Autor:  Linus [ Mo 03 Dez, 2007 16:18 ]
Betreff des Beitrags: 

Da hat wohl jemand ordentlich an deiner lodge.php gefummelt. Eigendlich sollte diese ganze Passage so aussehen:
$this->bbcode_second_pass_code('', '
}elseif ($_GET['op']=="keys1"){
$sql = "SELECT * FROM items WHERE owner=0 AND class='Schlüssel' AND value1=".$session[user][house]." ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)){
output("`b`c`&Verlorene Schlüssel:`c`b<table cellpadding=2 align='center'><tr><td>`bNr.`b</td><td>`bAktion`b</td></tr>",true);
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$bgcolor=($i%2==1?"trlight":"trdark");
output("<tr class='$bgcolor'><td align='center'>$row[value2]</td><td><a href='lodge.php?op=keys2&id=$row[id]'>Ersetzen (10 Punkte)</a></td></tr>",true);
addnav("","lodge.php?op=keys2&id=$row[id]");
}
output("</table>",true);
}else{
output("Der Schlüsselsatz für dein Haus ist komplett. Willst du einen zusätzlichen Schlüssel für 50 Punkte kaufen?");
addnav("Zusätzlicher Schlüssel (50 Punkte)","lodge.php?op=keys2&id=new");
}
addnav("Zurück zur Lodge","lodge.php");
}elseif ($_GET['op']=="keys2"){
if ($_GET[id]=="new"){
output("`b50`b ");
}else{
output("`b10`b ");
}
output("Punkte für diesen Schlüssel ausgeben?");
addnav("Schlüsselkauf bestätigen?");
addnav("JA","lodge.php?op=keys3&id=".$_GET[id]."");
addnav("Zurück zur Lodge","lodge.php");
}elseif ($_GET['op']=="keys3"){
if ($_GET[id]=="new"){
if ($pointsavailable<50){
output("Du hast nicht genug Punkte übrig.");
}else{
$sql = "SELECT * FROM items WHERE class='Schlüssel' AND value1=".$session[user][house]." ORDER BY id ASC";
$result = db_query($sql) or die(db_error(LINK));
$nummer=db_num_rows($result)+1;
db_free_result($result);
$sql="INSERT INTO items (name,owner,class,value1,value2,gold,gems,description) VALUES ('Hausschlüssel',".$session[user][acctid].",'Schlüssel',".$session[user][house].",$nummer,0,0,'Schlüssel für Haus Nummer ".$session[user][house]."')";
db_query($sql) or die(db_error(LINK));
$session['user']['donationspent']+=50;
output("Du hast jetzt `b$nummer`b Schlüssel für dein Haus! Überlege gut, an wen du sie vergibst.");
}
}else{
if ($pointsavailable<10){
output("Du hast nicht genug Punkte übrig.");
}else{
$nummer=$_GET[id];
$sql="UPDATE items SET owner=".$session[user][acctid].",hvalue=0 WHERE id=$nummer";
db_query($sql);
$session['user']['donationspent']+=10;
output("Der Schlüssel wurde ersetzt.");
}
}
addnav("Zurück zur Lodge","lodge.php");
}
')

und dann klappt es auch mit dem Schlüsselkauf^^

Autor:  Auric [ Mo 03 Dez, 2007 19:52 ]
Betreff des Beitrags: 

So wie es aussieht wird einfach die $_GET['id'] nicht richtig übertragen/gelesen. Aus dieser wird die variable $nummer generiert, die schließlich im Query eingesetzt wird. Letztere scheint wohl leer zu sein, was zum Fehler führt.

Schau mal bitte nach, was in der Adresszeile des Browsers steht, wenn der Fehler auftritt, speziell hinter id=

lg,
Auric

Autor:  Marja [ Mo 03 Dez, 2007 23:03 ]
Betreff des Beitrags: 

Da steht:

http://campius.de/lodge.php?op=keys3&id=&c=8-230321

Mit Linus Codeschnippel klappt's.

Autor:  Auric [ Di 04 Dez, 2007 17:21 ]
Betreff des Beitrags: 

Tja, daran sieht man's auch: Der ID-Abschnitt ist leer.

Wie ich das so sehe stimmt bei Linux Code die entsprechnde stelle.

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/