Verzweiflung: supplied argument is not a valid MySQL result resource...

SonMiko

Erfahrenes Mitglied
Hi,

wie der Titel bereits sagt verzweifle ich grad' an einer Stelle in meinem PHP Script:
PHP:
while($row = mysql_fetch_array(mysql_query("SELECT * FROM jos_menu"),MYSQL_NUM)){
Die Ausgabe lautet:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in F:\Server\xampplite-win32-1.6.7\xampplite\htdocs\joomla1\output_menu.php on line 19

Was ist falsch an dem Script bzw. an dieser Zeile?

Besten Gruß,

Mike
 
Hi

Syntaktisch ist dort weder der PHP-Code noch der MySQL-Befehl falsch.
Die Fehlermeldung besagt das der Query kein "gewünschtes" Ergebnis liefert, ergo liegt es am MySQL-Befehl bezüglich der Korrektheit der angaben. In diesem Beispiel könnte der Tabellenname falsch sein.

Vielleicht ist es auch denkbar das keine Verbindung zur Datenbank besteht.
Jedenfalls ist aus dieser Fehlermeldung nicht eindeutig zu erkennen woran es liegt.

mfg ;-)
 
Hi,

hier mal der ganze Code:
PHP:
<?php
//mySQL - Variablen
$host="localhost";
$user="root";
$pass="";
$db="joomla1";
$table="jos_menu";

//Datenbankverbindung
mysql_connect($host, $user, $pass);
mysql_select_db($db);

//XML Kopf
echo '&lt;?xml version="1.0" encoding="windows-1257"?&gt;<br>';

//Abfrage
$query  = "SELECT * FROM jos_menu";
$result = mysql_query($query,MYSQL_ASSOC);
while($row = $result){

/*
echo '&lt;btn id="'.$row["id"].'" menutype="'.$row["menutype"].'" alias="'.$row["alias"].'" link="'.$row["link"].'" type="'.$row["type"].'" published="'.$row["published"].'" ordering="'.$row["ordering"].'" params="'.$row["params"].'""&gt;<br>';
*/

}

//XML Ende
echo '&lt;/xml&gt;';

//Datenbankverbindung beenden
mysql_close();
?>
 
Wie Online-Skater schon sagte,

das ist alles wahrscheinlich richtig. Was wir eher bräuchten ist das Create Table zu jos_menu - Denke mal es liegt am namen. Änder die Zeile mal zu folgender:

PHP:
$query  = "SELECT * FROM `jos_menu`";

Und überprüfe ob deine Tabelle auch wirklich GENAU so heißt!

lg
 
...Alles ist stimmig und das ist das Problem...
Möglicherweise liegts einfach am XAMPP...

Ein Create Table gibts nicht - bzw. wie kann ich euch die Tabelle datrstellen, soll ich die Inhalte Exportieren?

Besten Gruß,

Mike
 
Also wenn ich mir den Fehler via mySQL ausgeben lasse erhalte ich folgendes:
<?xml version="1.0" encoding="windows-1257"?>
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 ''jos_menu'' at line 1

Jemand ne Idee?

hier nochmal der Code:
PHP:
<?php
//mySQL - Variablen
$host="localhost";
$user="root";
$pass="";
$db="joomla1";

//Datenbankverbindung
mysql_connect($host, $user, $pass);
mysql_select_db($db);

//XML Kopf
echo ('&lt;?xml version="1.0" encoding="windows-1257"?&gt;<br>');

//Abfrage

$query  = "SELECT * FROM 'jos_menu'";
$result = mysql_query($query) or die(mysql_error());
while($row = $result){
echo ('&lt;btn id="'.$row["id"].'" menutype="'.$row["menutype"].'" alias="'.$row["alias"].'" link="'.$row["link"].'" type="'.$row["type"].'" published="'.$row["published"].'" ordering="'.$row["ordering"].'" params="'.$row["params"].'""&gt;<br>');
}

/*
$sql = "SELECT * FROM `jos_menu` LIMIT 0, 30 ";
$query=mysql_query($sql)or die(mysql_error());
while($theData=mysql_fetch_array($query)){
}
*/
//XML Ende
echo ("&lt;/xml&gt;");

//Datenbankverbindung beenden
mysql_close();
?>
 
Und du bist sicher das sich in der Datenbank "joomla1" auch wirklich eine solche Tabelle befindet?

Ansonsten mal ein
Code:
SHOW CREATE TABLE jos_menu;
absetzen und das Ergebnis posten!
Falls aber (wie ich vermute) der Datenbank oder Tabellenname falsch ist wird das auch kein
Ergebnis liefern ;)

lg
 
Also in deinem letzten Post haut der Befehl aber auch nichtmehr hin
PHP:
$query  = "SELECT * FROM 'jos_menu'";
Hochkommas sind hier falsch, entweder Backticks oder garnichts!
 
Also in deinem letzten Post haut der Befehl aber auch nichtmehr hin
PHP:
$query  = "SELECT * FROM 'jos_menu'";
Hochkommas sind hier falsch, entweder Backticks oder garnichts!

Gut das du das gesehen hast. Ist mir garnich aufgefallen das er meinen Post
falsch interpretiert hat ;)

Das nächste mal Copy - Paste, Meister :)

lg
 
Zurück