Warning: mysql_fetch_array(): supplied argument...

killkrog

Erfahrenes Mitglied
Hi all.

Finde ich mich auch mal wieder in diesem Forum ein. Leider auch gleich mit Problemen bewaffnet, um euch das Leben auch schön schwer zu machen ;)
Also, ich habe folgenden Code:

PHP:
<?
// ---------------------------------
$db_host ="xxx";
$db_user ="xxx";
$db_passwort ="xxx";
$db_name ="xxx";
$verbindung = mysql_connect("$db_host","$db_user", "$db_passwort")or die ("Konnte Verbindung nicht herstellen!"); 
mysql_select_db($db_name,$verbindung)or die ("Konnte Datenbank nicht finden!");
// ---------------------------------

$dummy = "";
$sql = mysql_query("SELECT * FROM check"); 
$dummy = mysql_fetch_array($sql); 
?>

Leider bekomme ich immer folgende Fehlermeldung:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in 'xxx' on line 11
Die Datenbank hat auf jeden Fall die nötigen Einträge.
Ich komm einfach nicht drauf...
Bitte helft mir!

Grüße,
Killkrog
 
Solltest vorher noch den SQL-String ausführen:

PHP:
$sql = mysql_query("SELECT * FROM check"); 
$result = mysql_query($sql);
 
Machs mal per
Code:
$sql = mysql_query("SELECT * FROM check")or die(mysql_error());
....
was besagt die Fehlermeldung?

....ehrlich gesagt ist das einzigste, was ich mir als Ursache vorstellen kann, dass es in der DB keine Tabelle namens check gibt.
 
Hi Leute. Danke erstmal für die bereits jetzt zahlreichen Antworten. Ihr erinnert mich daran, warum ich das Forum so liebe :)

Leider besteht das Problem weiterhin.
Hab den Code nun in das hier umgeschrieben:

PHP:
$sql = mysql_query("SELECT * FROM 'check'") or die(mysql_error()); 
$result = mysql_query($sql);

Dann wird mir dieser Fehler ausgegeben:

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 ''check'' at line 1

Hilft euch das was? Mir nicht...
Bitte um Hilfe!

Grüße,
Killy
 
Mir ist etwas aufgefallen:

PHP:
$sql = mysql_query("SELECT * FROM 'check'"); 
$result = mysql_fetch_array($sql);
Funktioniert nicht...


PHP:
$sql = mysql_query("SELECT * FROM `check`"); 
$result = mysql_fetch_array($sql);
Funktioniert perfekt...
Tja, ihr fragt euch, wo der Unterschied ist?

Es sind die Anführungszeichen. Beim funktionierenden Beispiel habe ich die Taste neben Backspace + Shift benutzt, um einen 'schrägen' Anführungsstrich zu bekommen.
Der von mir normalerweise verwendete Shift-# funktioniert nicht.
Ich weiss jetzt schon, dass ich mich niemals umgewohnen könnte.
Habt ihr ne Ahnung, an was sowas liegen kann?!
Bitte dringends um Hilfe.
Greetz...
 
Hi!

Der Tabellenname ist in diesem Fall kein String, sondern halt ein Name - der ist in den Accents. Das ganze macht Sinn, wenn du den Inhalt eines Feldes mit einem String vergleichts:
Code:
... WHERE `Tabellenfeld`='Tabellenwert'

Alles klar? ;)

Mamphil
 
In Singlequotes (') gehören um Strings zum Vergleichen:
... WHERE text='Ich bin ein toller Text'

Backticks braucht man m.W. eigentlich nur zwingend wenn man eine Tabelle mit einem geschützten Namen bedacht hat z.B. `password`
 
Aber es ist doch kein Tabellenfeld, sondern die eigentliche Tabelle.
Die Tabelle heist check, und ich will einfach alles daraus auslesen...
Versteh euch net :confused:
Sry...

// edit

PHP:
$dummy = mysql_fetch_array(mysql_query("SELECT * FROM `check` WHERE ip='127.0.0.1'"));

Das geht, aber da hab ich um check wieder die backtips (so heissen die ^^)...
 
Zuletzt bearbeitet:
Wenn musst du konsequent sein und alle selbstvergebene Namen in die Back-Quotes packen, also auch das "ip":
Code:
SELECT * FROM `check` WHERE `ip`='127.0.0.1'

Mamphil
 
Zurück