Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result

HPB

Erfahrenes Mitglied
Hallo ich erhalte bei folgendem Code-Schnipsel eine Fehlermeldung.
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...

PHP:
<?
echo "Verbinde mit db...<br>";
$con =  mysql_connect('localhost', '****', '****');   //korrigiert (siehe unten)

if($db =  mysql_select_db("*****")) 
{
	echo "DB-Verbindung erfolgreich<br>";
}
else 
{
	echo "keine Verbindung zur DB<br>";
}

$tab = 'jos_akreservations';
$query = "select stamp, confirmed, accepted, waitlist, name".
	 "from $tab".
	 "where 'category' = 'myID' and ".
              "'session'  = 'session'".
	 "order by id asc";
echo "Query = $query <br>";

if ($res=mysql_query($query)) //Korrigiert (siehe unten)
{
    echo "Abfrage prinzipiell ok...<br> $res <br><br>";
    while($row=mysql_fetch_array($res))
	{
	echo $row["stamp"].', '.$row["confirmed"].', '.$row["accepted"].', '.$row["waitlist"].', '.$row["name"].'<br> ';
	}

}
else 
{
	echo "fehler :(";
}
?>

Anbei noch eine Info über die zugehörige Datenbanktabelle:
PHP:
CREATE TABLE `jos_akreservations` (
  `id` int(11) NOT NULL auto_increment,
  `language` varchar(20) NOT NULL default '',
  `mamboLanguage` varchar(20) NOT NULL default '',
  `lastErr` varchar(100) NOT NULL default '',
  `checked_out` int(11) NOT NULL default '0',
  `checked_out_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `stamp` datetime default NULL,
  `lastaccess` datetime default NULL,
  `reconf_request` tinyint(1) unsigned NOT NULL default '0',
  `reconf_request_time` datetime NOT NULL default '0000-00-00 00:00:00',
  `version` varchar(10) NOT NULL default '',
  `category` varchar(20) NOT NULL default '',
  `session` varchar(80) NOT NULL default '',
  `ticketcount` int(11) NOT NULL default '0',
  `items` text NOT NULL,
  `userid` int(11) default NULL,
  `username` varchar(25) NOT NULL default '',
  `email` varchar(100) NOT NULL default '',
  `name` varchar(100) NOT NULL default '',
  `address` text NOT NULL,
  `phone` varchar(100) NOT NULL default '',
  `message` text NOT NULL,
  `custline1` varchar(100) NOT NULL default '',
  `custline2` varchar(100) NOT NULL default '',
  `custline3` varchar(100) NOT NULL default '',
  `custline4` varchar(100) NOT NULL default '',
  `custline5` varchar(100) NOT NULL default '',
  `custline6` varchar(100) NOT NULL default '',
  `custline7` varchar(100) NOT NULL default '',
  `custline8` varchar(100) NOT NULL default '',
  `custline9` varchar(100) NOT NULL default '',
  `custnum1` varchar(20) NOT NULL default '',
  `custnum2` varchar(20) NOT NULL default '',
  `custnum3` varchar(20) NOT NULL default '',
  `custnum4` varchar(20) NOT NULL default '',
  `custnum5` varchar(20) NOT NULL default '',
  `custnum6` varchar(20) NOT NULL default '',
  `custnum7` varchar(20) NOT NULL default '',
  `custnum8` varchar(20) NOT NULL default '',
  `custnum9` varchar(20) NOT NULL default '',
  `custdate1` datetime default NULL,
  `custdate2` datetime default NULL,
  `custdate3` datetime default NULL,
  `custdate4` datetime default NULL,
  `custdate5` datetime default NULL,
  `custdate6` datetime default NULL,
  `custdate7` datetime default NULL,
  `custdate8` datetime default NULL,
  `custdate9` datetime default NULL,
  `custtext1` text NOT NULL,
  `custtext2` text NOT NULL,
  `custtext3` text NOT NULL,
  `custtext4` text NOT NULL,
  `custtext5` text NOT NULL,
  `custtext6` text NOT NULL,
  `custtext7` text NOT NULL,
  `custtext8` text NOT NULL,
  `custtext9` text NOT NULL,
  `custbox1` tinyint(1) unsigned NOT NULL default '0',
  `custbox2` tinyint(1) unsigned NOT NULL default '0',
  `custbox3` tinyint(1) unsigned NOT NULL default '0',
  `custbox4` tinyint(1) unsigned NOT NULL default '0',
  `custbox5` tinyint(1) unsigned NOT NULL default '0',
  `custbox6` tinyint(1) unsigned NOT NULL default '0',
  `custbox7` tinyint(1) unsigned NOT NULL default '0',
  `custbox8` tinyint(1) unsigned NOT NULL default '0',
  `custbox9` tinyint(1) unsigned NOT NULL default '0',
  `custsel1` varchar(40) NOT NULL default '',
  `custsel2` varchar(40) NOT NULL default '',
  `custsel3` varchar(40) NOT NULL default '',
  `custsel4` varchar(40) NOT NULL default '',
  `custsel5` varchar(40) NOT NULL default '',
  `custsel6` varchar(40) NOT NULL default '',
  `custsel7` varchar(40) NOT NULL default '',
  `custsel8` varchar(40) NOT NULL default '',
  `custsel9` varchar(40) NOT NULL default '',
  `custrad1` varchar(40) NOT NULL default '',
  `custrad2` varchar(40) NOT NULL default '',
  `custrad3` varchar(40) NOT NULL default '',
  `custrad4` varchar(40) NOT NULL default '',
  `custrad5` varchar(40) NOT NULL default '',
  `custrad6` varchar(40) NOT NULL default '',
  `custrad7` varchar(40) NOT NULL default '',
  `custrad8` varchar(40) NOT NULL default '',
  `custrad9` varchar(40) NOT NULL default '',
  `cost` float NOT NULL default '0',
  `activation` varchar(35) NOT NULL default '',
  `confirmed` tinyint(1) unsigned NOT NULL default '0',
  `accepted` tinyint(1) unsigned NOT NULL default '0',
  `storno` tinyint(1) unsigned NOT NULL default '0',
  `waitlist` tinyint(1) unsigned NOT NULL default '0',
  `paid` tinyint(1) unsigned NOT NULL default '0',
  `ppal_verified` tinyint(1) unsigned NOT NULL default '0',
  `ppal_status` varchar(100) NOT NULL default '',
  `ppal_ip` varchar(100) NOT NULL default '',
  `deleted` tinyint(1) unsigned NOT NULL default '0',
  `email_sent` tinyint(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`),
  KEY `category` (`category`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;

COMMIT;

Irgendwie ist der Wurm drin. Könnt ihr euch das mal anschauen. Ich finde den Fehler einfach nicht :(
 
Zuletzt bearbeitet:
Die vorhergehende Datenbankabfrage schlug schlicht und einfach fehl. Lass dir einfach die MySQL-Fehlermeldung ausgeben. Die Logik deines letzten If-Kontrukts ist übrigens genau falsch.
 
Außerdem fehlt ein ' in dieser Zeile - Hab's mal korrigiert.
PHP:
con =  mysql_connect('localhost', '****', '****');
 
Danke für die Hinweise. Die Fehler in der Logik sind durch zu schnelles Kopieren und Einfügen und das Vereinfachen des Codes entstanden (wollte hier bspw. nicht unbedingt, die Benuutzername und PW veröffentlichen)

Könnt Ihr mir kurz sagen, wie ich mir die Fehlermeldung des SQL-Abfrage anzeigen lasen kann? Das würde mich sicherlich weiterbringen. Ich habe die SQL-Anweisung nämlich direkt in der mySQL-DB Konsole erfolgreich getestet, bevor ich sie in den Quellcode eingebaut habe (hier allerdings mit Variablen)

Danke im Voraus,
Peter
 
Das geht mit ... OR die (mysql_error());

Beispiel:
PHP:
$ressource = mysql_query($query) or die(mysql_error());

Gruß Radhad
 
Zurück