Fehler: SELECT command

Moin Leute,

habe ein Fehler auf meiner Seite und hab keine Ahnung was der aussagen soll:

zu finden auf rpgadmin.bplaced.net/BWG/kampf.php
auf rpgadmin.bplaced.net/BWG/index.php mit dem Benutzernamen: user und dem Passwort: pass einloggen und bei der Kampfseite in der suche irgendetwas eintragen…

was kann das bedeuten?

Gruß,

RPG-Admin^^

z.B. dass der user rpgadmin die zugriffrechte bzw. “select”-rechte für die tabelle char nicht hat…

achso ok vielen dank nur wo kann ich das einstellen das ALLE User die rechte haben sollen?^^

Ohne mehr Information werden wir dir wohl kaum helfen können. Gib uns mal deinen Quelltext der betreffenden Datei (am Besten der Ausschnitt, wo gesucht wird)

[code]$gegner = $_GET[‘u’];

$sql = “SELECT * FROM rpgadmin.char WHERE id = ‘$gegner’”;
$result = mysql_query($sql, $db) or die("Fehler: ".mysql_error());
$gegner = mysql_fetch_array($result, MYSQL_ASSOC);[/code]

das müsste der Ausschnitt sein, wie man sehen kann bricht er bei mysql_query… ab
und führt den dahinter stehenden mysql_error() aus.

$db ist oben initialisiert mit den Datenbanklogin, der ist funktionell

[i]$_GET['u'][/i] ist nicht gesetzt :wink: (Du kommst sicher drauf warum)

$_GET[‘u’] ist nicht gesetzt :wink: (Du kommst sicher drauf warum)

ich hab etwas höher

[code]if(isset($_GET[‘u’])){

// hier ist das mit dem $_GET[‘u’]
$gegner = $_GET[‘u’];

// hier ist der script den ich vorher gepostet habe

}[/code]

so sieht das aus, das ist schon richtig, und ich hab ne funktion eingebaut die noch prüft ob es eine zahl ist aber ansonsten ist das schon richtig so…

auf meinem lokalem server läuft das sogar: 213.39.220.16, könnt ja mal gucken^^

Es ist trotzdem nicht gesetzt:

:wink:

ups ne der Fehler ist doch wo anders sorry^^

[code]else if($_SERVER[‘REQUEST_METHOD’] == “POST”){

$lvl = $_POST[‘lvl’];

$sql = “SELECT * FROM user.char WHERE id = ‘$id’”;
$result = mysql_query($sql, $db) or die("Fehler: ".mysql_error());
$erg = mysql_fetch_row($result);
$row = mysql_fetch_array($result, MYSQL_ASSOC);

//eine funktion:

function out($db, $lvl){
$arrData = array();
$id = $_SESSION[‘user’][‘id’];
$sql = “SELECT * FROM rpgadmin.char WHERE lvl = ‘$lvl’ AND id != ‘$id’”;
$result = mysql_query($sql, $db) or die("Fehler: ".mysql_error()); //<------ FEHLER^^

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
	$arrData[] = $row;
}

return $arrData;

}

$arrData = out($db, $lvl);
$count = count($arrData);
if($count == 0){
echo “es sind keine spieler auf diesem level vorhanden”;
} else {

// der rest ist relativ unwichtig weil der fehler oben makiert ist[/code]

// EDIT: und jaaaa ich habe ein Formular was angezeigt wird sofern das Formular nicht abgesendet wurde…

hab so eine Theorie, kann es sein wenn man die Datenbank neustarten würde das das wieder heile is?^^

es kann sein, dass alles heile ist, wenn du endlich $_GET durch $_POST ersetzt…

:smiley:

nochmal hier der ganze Source da ist kein verkackter fehler, also nicht $_GET und $_POST vertauscht :wink: auch daran zu erkennen das er local funktioniert hat…

durchkommentierter Source:

entfernt weil ist nicht ;)

bei fragen: darkmiller@freenet.de

Ah, da hast du vorher ja den falschen Codeteil gepostet :ps:

Nummerier bitte mal die die("Fehler: ".mysql_error()); durch, damit klar wird welcher Query fehlschlägt :wink:

in diesem Teil hier:

[code]//------------------------Wert “lvl” wird initialisiert
$lvl = $_POST[‘lvl’];

//------------------------$row wird initialisiert
$sql = “SELECT * FROM user.char WHERE id = ‘$id’”;
$result = mysql_query($sql, $db) or die("Fehler: ".mysql_error());
$erg = mysql_fetch_row($result);
$row = mysql_fetch_array($result, MYSQL_ASSOC);

//------------------------Alle Gegner des Levels $lvl werden aus der Datenbank gelesen
function out($db, $lvl){
$arrData = array();
$id = $_SESSION[‘user’][‘id’];
$sql = “SELECT * FROM rpgadmin.char WHERE lvl = ‘$lvl’ AND id != ‘$id’”;
$result = mysql_query($sql, $db) or die("Fehler: ".mysql_error());

while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
   $arrData[] = $row;
}

return $arrData;

}

$arrData = out($db, $lvl);
$count = count($arrData);
if($count == 0){
echo “es sind keine spieler auf diesem level vorhanden”;
} else {

//------------------------Alle ausgelesenen Gegner werden in einer Tabelle ausgegeben
?>

<?php foreach ($arrData as $row2) {

?>

<?php }} ?>
User Level Stärke Angreifen
<?= $row2['user'] ?> <?= $row2['lvl'] ?> <?= $row2['atk'] ?> Angreifen
<?php }[/code]

es ist einer der Beiden SQL befehle ich teste mal kurz…

$erg = mysql_fetch_row($result); $row = mysql_fetch_array($result, MYSQL_ASSOC);
Das sieht mir nicht so gut aus, und die verwendung der beiden Variablen ist mir auch noch nicht ganz klar :wink:

es muss das erste sein, weil als ich den error beim ersten rausnahm kam:

[quote]Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /users/rpgadmin/www/BWG/kampf.php on line 200

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /users/rpgadmin/www/BWG/kampf.php on line 201[/quote]

Und er gibt auch die Tabelle aus wenn ich den ersten mysql_error(); rausnehme…

//EDIT: jup ich hab eine komische bennennung^^

$row nehme ich immer für den eigenen char, ka warum angewohnheit xD
und $erg heißt soviel wie ergebniss

$sql = "SELECT * FROM `user`.`char` WHERE `id` = '$id'"; $result = mysql_query($sql, $db) or die("Fehler: ".mysql_error()); $erg = mysql_fetch_row($result); $row = mysql_fetch_array($result, MYSQL_ASSOC);
Den Teil kannst du weglassen, du initialisierst $row ja schon ganz oben :wink: (außerdem entweder fetch_row ODER fetch_array, sonst schlägt das zweite immer fehl)

ups hab den Fehler gefunden hab 1 mal übersehen die datenbank auf rpg admin zu tun kann geclosed werden^^

thx

meistens findet man den Fehler selbst eh am schnellsten :slight_smile:

Du solltest dir jedoch wirklich eine übersichtlichere Programmierweise angewöhnen :wink:

Hast du da etwa eine Funktion geschrieben?

Guck mal:
de.php.net/manual/de/function.is-int.php
de.php.net/manual/de/function.is-numeric.php
de.php.net/manual/de/function.is-float.php