kann mir jemand bei mysql helfen ?

The Rebel

Mitglied
Hallo

Dass hier soll die anmeldung zu einem browserspiel werden (dass forular ist eine seite weiter "vorne".)

nur ab Zeile: 65 (// ID vom Dorf auslesen) funktioniert es nicht und ich hab keinen Plan woran es liegen könnte.

wäre über ein kleinen Tipp sehr dankbar

mfg
rebel

PHP:
<?php
$host = "localhost";
$user = "";
$password = "";
$dbname = "";
$dbverbindung = mysql_connect ($host, $user, $password);

//	von der anmeldung.php

	$date=$_REQUEST['date'];
	$time=$_REQUEST['time'];
	$ip=$_REQUEST['ip'];
	$id=$_REQUEST['id'];
	$nickname=$_REQUEST['nickname'];
	$kennwort=$_REQUEST['kennwort'];

//	Benutzername einfuegen

		$stamm = "0";
		$op = "0";

		$dbanfrage = "INSERT into benutzerdaten values ('', '$date', '$time', '$ip', '$nickname', '". md5 ($kennwort)."', '$stamm', '$op', '$vorname', '$mail')";
			if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
				print ("Benutzer angelegt<br>");
			} else {
				print ("Es traten Probleme auf.");
			}

//	ID vom Benutzername auslesen

		$abfrage2 = @mysql_query("select * from benutzerdaten WHERE nickname='$nickname'&&date='$date'&&time='$time'");
			while($ausgabe = mysql_fetch_object($abfrage2)) 
			{
				$id123=$ausgabe->id;
				$nick123=$ausgabe->nickname;
			}
		@mysql_free_result($abfrage2);
		@mysql_close();
		
//	Variablen für das naechste INSERT		
				
	$name="".$nick123."s Dorf";
	$x="0";
	$y="0";
	$playerid=$id123;
	$points="0";
	$zustimmung="100";
	$erbautvon=$id123;
				
//	Dorf anlegen				
				
		$dbanfrage = "INSERT into villages values ('', '$name', '$x', '$y', '$playerid', '$points', '$zustimmung', '$erbautvon')";
			if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
				print ("Dorf angelegt.<br>");
			} else {
				print ("Es traten Probleme auf.");
			}

//	ID vom Dorf auslesen

		$abfrage = @mysql_query("select * from villages WHERE playerid='$id123'");
			while($ausgabe = mysql_fetch_object($abfrage)) 
			{
				$idvil=$ausgabe->id;
			}
		@mysql_free_result($abfrage);
		@mysql_close();

//	Variablen für das naechste INSERT
  
	$playerid=$id123;
	$villageid=$idvil;
	$Hauptgebaeude="1";
	$dorfplatz="0";
	$kaserne="1";
	$stall="0";
	$foersterei="2";
	$steinbruch="2";
	$eisenmine="2";
	$behausungen="1";
	$schmiede="0";
	$maschienenhalle="0";
	$werkstatt="0";
	$speicher="1";
	$versteck="0";
	$wall="0";
	$wachturm="0";
	
//	Gebaeude anlegen					
				
		$dbanfrage = "INSERT into bulidings values ('', '$playerid', '$villageid', '$Hauptgebaeude', '$dorfplatz', '$kaserne', '$stall', '$foersterei', '$steinbruch', '$eisenmine', '$behausungen', '$maschienenhalle', '$werkstatt', '$speicher', '$versteck', '$wall', '$wachturm')";
			if (mysql_db_query ($dbname, $dbanfrage, $dbverbindung)) {
				print ("Datenbankeintrag erfolgreich.");
			} else {
				print ("Es traten Probleme auf.");
			}
?>
Fehlermeldung
Code:
Benutzer angelegt
Dorf angelegt.

Warning: Supplied argument is not a valid MySQL result resource in /var/www/web12/html/system/anmeldung_work.php on line 68
Es traten Probleme auf.
 
Zuletzt bearbeitet:
Hallo,

ich denke es wäre ziemlich sinnvoll die Fehlerzeile zu makieren, also in deinem falle Zeile 68.

MfG

Edit:
Hast du ja mehr oder weniger, sorry.

Also:
entfern mal in Zeile 67:
Code:
$abfrage = @mysql_query("select * from villages WHERE playerid='$id123'");

das @ und füg ein "or die(mysql_error())" an.

Code:
$abfrage = mysql_query("select * from villages WHERE playerid='$id123'") or die(mysql_error());
 
Zuletzt bearbeitet:
Ich denke doch mal, dass es unten "INSERT into buildings" anstatt "INSERT into bulidings" heißen soll, oder?
 
ja der rechtschreibfehler stimmt aber der ließt die id darüber schon nicht aus da kommt der fehler

der fehler kommt in dem bereich
// ID vom Dorf auslesen

genauer in der zeile
while($ausgabe = mysql_fetch_object($abfrage))
 
Original geschrieben von Lark
Hallo,

ich denke es wäre ziemlich sinnvoll die Fehlerzeile zu makieren, also in deinem falle Zeile 68.

MfG

Edit:
Hast du ja mehr oder weniger, sorry.

Also:
entfern mal in Zeile 67:
Code:
$abfrage = @mysql_query("select * from villages WHERE playerid='$id123'");


das @ und füg ein "or die(mysql_error())" an.

Code:
$abfrage = mysql_query("select * from villages WHERE playerid='$id123'") or die(mysql_error());

da kommt dann
Code:
Benutzer angelegt
Dorf angelegt.
No Database Selected

aber die database ist doch ausgwählt oder nicht ?
 
Hallo,

nein hast du nicht.
Es wundert mich aber schon irgendwo dass das Script bis dorthin Einbahn frei arbeitet.

Schau dir mal die Funktion mysql_select_db an und binde sie ein und starte das Script noch mal dann dürfte es funktionieren.

MfG


Edit:

jetzt ist mir es klar warum das Script bis dahin ohne Probleme funktioniert.

Du hast bis zur Zeile 67 die Funktion mysql_db_query genutzt und hast dort auch die zugehörige db angebenen was du in Zeile 67 nicht getan hast, dort hast du die Funktion mysql_query genutzt und die db nicht angegeben.
 
Zuletzt bearbeitet:
Mal ein kleiner Gedanke am Rande: Soweit ich weiß ist mysql_fetch_object rechenintensiver als assoc z.B. - Wenn dein Browser Spiel nun erfolgreich wird und dein Server stark belastet wird ist es sicher vorteil haft an gewissen Stellen des Script ressourcensparend zu coden.
Lange Rede kurzer Sinn: Ich würde das object durch assoc ersetzen.
 
Zurück