Archiv verlassen und diese Seite im Standarddesign anzeigen : Scriptfehler
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
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!^^)
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
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);
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 ;)
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... ^^'
$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?
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.
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.
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.
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:
Da steht ResourceId#4 ^^ (Jedenfalls was ähnliches, ich hbas auswendig geschrieben^^)
Wenn sowas kommt wurde die Daten nicht ordnunggemäß in ein Array übergeben ;)
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.
Hab, ich, geht aber trotzdem net... klappt so also auch nicht!
setz mal am Anfagn deines Scripts das hier:
error_reporting(E_ALL);
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?
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
Powered by vBulletin® Version 4.2.3 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.