PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Scriptfehler



raian
31.07.2005, 13:16
Hi!

Nach langer Zeit, in der ich an meinem Browsergame gearbeitet habe, bin ich dabei ein KS (Kampfscript) zu proggen. Das passiert in PHP.

Also, die Bezeichnungen sind richtig, alles geprüft, und die Session[name] ist auch richtig, es gibt hallo,name_der_in_der_session_ist aus. Die Datenbank bezeichnungen sind auch richtig. Der Script gibt keine Fehlermeldung aus. Da liegt mein problem. Sonst hab ich es anhand dieser kleinen nervigen, aber doch nützlichen Sätze geregelt. Aber da es diesmal keine gibt und cih den Fehler einfach ne finde... HILFE!

Hier der Code:


<?php
session_start();
include("../dbconnect.php");
?>
<html>
<head>
<title>
Kampf! - Warlord I
</title>
</head>
<body>
<?php
echo "Hallo, ";
echo $_SESSION['name'];
echo "<br><br>";
if (isset($_SESSION['name']))
{ //Anfang_Schleife[1]

//Nutzer und Gegnerinformationen einholen:
$username = $_SESSION['name'];
$userdaten_1 = "SELECT * `user` WHERE `name´ = $username";
$userdaten = mysql_query($userdaten_1);
$zufall = rand(1,2);
$gegner_1 = "SELECT * FROM `gegner` WHERE `id` = '$zufall' && `rasse` = '$userdaten[rasse]'";
$gegner = mysql_query($gegner_1);
echo $gegner[texta];
echo $gegner;
echo $userdaten;
} //Ende_Schleife[1]
?>
</body>
</html>

Da ich net weiß wo da der fehler ist...schick ich das gesamte ding samt grundgerüst usw.

Orkkrieger
31.07.2005, 13:21
so wie ich das sehe hast du vergessen, das du die abfrage nach der query noch in ein array stecken musst...

also über

mysql_fetch_array
oder
mysql_fetch_assoc

raian
31.07.2005, 13:32
Hmmm?

Muss man das? Argh! Jetz weiß ich was ich da falsch mach!^^

Danke Orckrieger, wenn das klappt liebe ich dich!^^

edit: Kann man das auch ohne die While schleifen machen?! (sagt ja, sagt ja!^^)

fanrpg
31.07.2005, 16:22
edit: Kann man das auch ohne die While schleifen machen?! (sagt ja, sagt ja!^^)

Wenns sein muss:

Ja es geht

So:



<?php
$row = mysql_fetch_assoc();


$row['wasweissich'] // Einmaliger Aufruf der Variabele, zuerst gelesener Inhalt wird wiedergegeben
?>


Mfg fanrpg

raian
31.07.2005, 17:25
Thx!

So, dann mach ich mich mal wieder an die Arbeit!

edit:

Jetz gibts wenigstens ne Fehlermeldung aus^^

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/adrians/html/quatsch/game/KS/ks.php on line 23

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/adrians/html/quatsch/game/KS/ks.php on line 27



Hier der Code der Probleme bereitet:

Das is der teil...:


$username = $_SESSION['name'];
$userdaten_1 = "SELECT * `user` WHERE `name´ = $username";
$userdaten = mysql_query($userdaten_1);
$userdaten = mysql_fetch_array($userdaten);
$zufall = rand(1,2);
$gegner_1 = "SELECT * FROM `gegner` WHERE `id` = '$zufall' && `rasse` = '$userdaten[rasse]'";
$gegner = mysql_query($gegner_1);
$userdaten = mysql_fetch_assoc($userdaten);
$gegner = mysql_fetch_assoc($gegner);

NiKrYss
31.07.2005, 19:33
also ich würde an deiner Stelle zuerst einmal nicht immer die gleichen Variablennamen zu übergeben. Durch die gleiche Benennung übergibst du in den Zeilen

$userdaten = mysql_query($userdaten_1);
$userdaten = mysql_fetch_array($userdaten);
...
$userdaten = mysql_fetch_assoc($userdaten);
einen falschen Variableninhalt an die Funktion mysql_fetch_assoc.
Versuch es mal so:

$userdaten = mysql_query($userdaten_1);
$eineVariable = mysql_fetch_array($userdaten);
...
$zweiteVariable = mysql_fetch_assoc($userdaten);
Durch die gleichen Variablennamen überschreibst du dir die Inhalte, wodurch dann Fehlermeldungen entstehen. Außerdem wird das ganze mit unterschiedlichen Variablennamen auch übersichtlicher ;)

raian
01.08.2005, 08:37
Beim Gegner klappt es merkwüdigerweise so, aber bei den Userdaten kommt folgener Fehler:


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/webpages/lima-city/adrians/html/quatsch/game/KS/ks.php on line 24

Hier der Codeschnipsel der die Daten aus der Datenbank holt:



$userdaten_1 = "SELECT * FROM `user` WHERE `name´ = '$username'";
$userdaten_2 = mysql_query($userdaten_1);
$userdaten = mysql_fetch_assoc($userdaten_2);



Ich seh da kienen Fehler, die Struktur ist genau wie bei der anderen Auswahl. Nur die Variablennamen sind anders. mit dem _1 und dem _2 bin ich auch nicht durcheiandner gekommen und shceinbar ist ach nichts an der Abfrage falsch... ich sollte mir diese die gedöns angewöhnen, aber ich hab vergssen wie das geht... ^^'

fanrpg
01.08.2005, 10:05
$userdaten_1 = "SELECT * FROM `user` WHERE `name´ = '".$username."'";
$userdaten_2 = mysql_query($userdaten_1);
$userdaten = mysql_fetch_assoc($userdaten_2);

bzw. wo nimmst du die Variabele $username her?

NiKrYss
01.08.2005, 10:53
Also ich vermute mal, dass der Fehler schon in der vorherigen Zeile liegt. Schreib doch einfach mal die Zeile

$userdaten_2 = mysql_query($userdaten_1);
um in

$userdaten_2 = mysql_query($userdaten_1) or die mysql_error();
und wenn hier dann eine Fehlermeldung kommt, poste die einfach mal. Dann sollte sich dein Problem lösen lassen.
Im übrigen musst du in deinem Skript für die SQL-Abfrage nicht mysql_fetch_array und mysql_fetch_assoc gleichzeitig verwenden. In mysql_fetch_array ist die Funktion mysql_fetch_assoc enthalten, so dass du nur mysql_fetch_array verwenden musst.

raian
01.08.2005, 18:53
Gibt nur das gleich aus wie gewohnt...

Und die Variable Username hole ich aus einer Session die beim LogIn gesetzt wird. Aber da ist kein Fehler drinne.

NiKrYss
01.08.2005, 19:21
Also laut deiner Fehlermeldung liegt der Fehler in einem falschen bzw. nicht bestehendem Query.
Hast du dir mal den SQL ausgeben lassen (die SELECT-Anweisung)? Wenn nicht, mach das mal und überprüfe, was da drin steht!
Ansonsten prüfe, ob in der Variable $username wirklich was drin steht und ob die Schreibweise von Tabellen- und Spaltenname stimmt. Manchmal liegt es an so kleinen Flüchtigkeitsfehlern.

raian
01.08.2005, 19:28
Da steht ResourceId#4 ^^ (Jedenfalls was ähnliches, ich hbas auswendig geschrieben^^)

Orkkrieger
01.08.2005, 20:06
bei sowas hab ich auch gelegentlich unerklärliche probleme.

schreib die query gleich in die klammer bei mysql_query und tu die nicht in eine variable, so klappts bei mir in der regel.
:rolleyes:

fanrpg
02.08.2005, 01:11
Da steht ResourceId#4 ^^ (Jedenfalls was ähnliches, ich hbas auswendig geschrieben^^)

Wenn sowas kommt wurde die Daten nicht ordnunggemäß in ein Array übergeben ;)

NiKrYss
02.08.2005, 07:30
raian:
Da steht ResourceId#4
ja, solche Ausgaben sind normal wenn du dir direkt den Query ausgeben lässt.
Ich geh jetzt mal davon aus, dass du mit PhpMyAdmin arbeitest, was die Datenbanken angeht. Wenn dem so ist, versuch doch mal den SQL direkt im PhpMyAdmin abzusetzen (für die Variable $username musst du dann halt einfach mal einen existierenden Namen einsetzen) und guck was ausgegeben wird.

raian
02.08.2005, 14:51
Hab, ich, geht aber trotzdem net... klappt so also auch nicht!

fanrpg
02.08.2005, 15:07
setz mal am Anfagn deines Scripts das hier:


error_reporting(E_ALL);

NiKrYss
02.08.2005, 16:39
Also wenn du den SQL direkt im phpMyAdmin nicht absetzen kannst, muss dir im PhpMyAdmin ja ein Fehler ausgegeben werden. Der Fehler würde dann direkt in deiner SELECT-Anweisung liegen.
Was heißt denn "es geht nicht"? Kommt eine Fehlermeldung im PhpMyAdmin? Und wenn ja, wie lautet die?

raian
03.08.2005, 20:26
Hab den Fehler gefunden!

Es war ein Fehler in der Syntax glaube ich. Ich hab halt rumprobiert usw... dann ging es.


Danke! Ihr habt das alles erst möglich gemacht...^^

http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif http://www.multimediaxis.de/images/smilies/old/sm_12.gif