MySQL_num_rows -> No valid Result-Resource

Kona

Mitglied
Hallöchen,

mich plagt seit ein paar Tagen ein Problem bei einem Script, wo ich jetzt echt nicht mehr weiterkomme. Grund dafür ist die eigentlich harmlose Funktion mysql_num_rows($result_resource), die einem die Anzahl der Datensätze nach einem SELECT ausgeben soll.

So, tut sie aber nicht immer, zumindest bei mir. Wo tritt das Problem auf?

Hier, an dieser Stelle:

PHP:
elseif ($type == 'Lost4Tune') {
$l4t_query = mysql_query("SELECT * FROM lost4tune WHERE category='$url'", $handle);          
$l4t_count = mysql_num_rows($l4t_query);
...
}
Wenn ich die Seite zum ersten Mal aufrufe, dann ist das ganze kein Problem. Die Funktion macht das, was sie soll. Aber wenn ich die aufgerufene Seite sagen wir mal 5 Minuten unberührt lasse und dann mit F5 reloade, dann kommt die schöne Fehlermeldung
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/polyskope.de/www/htdocs/selected_category.php on line 135,
als ob die Result-Resource verschwunden sei. An was kann das liegen?
 
Nein, noch nicht. Ich werde das gleich mal nach Feierabend machen. Sollte ich gemäß meiner Erwartung mit den dargelegten Fehlermeldungen nicht zurecht kommen, melde ich mich hier wieder. Bis denn ;)
 
So, hab deinen Tip befolgt und mysql_errno() eingebaut.
Als Fehlercode bekomme ich jetzt das hier raus:

MySQL_Errno: 1046

Aber wirklich schlau macht mich das jetzt auch nicht. :(

Edit 1:
Ah, hab was, google sei dank, gefunden. Ernno 1046 = Database not found.
Und auch schon einen Lösungsansatz. Falls es jemanden interessiert, ich hab das Problem jetzt so gelöst.
PHP:
if ($handle) {
  mysql_close($handle);
}

$handle = mysql_pconnect($server, $username, $password);

if ($handle) {
  // Following coding
Und falls jemand noch einen Lösungsansatz hat, darf er mir ihn gern sagen :)
 
Zuletzt bearbeitet:
Stimmt. Kam aber im Ergebnis aufs selbe raus.

Hab jetzt meinen eigentlichen Fehler gefunden. Aua aua, der tut echt weh. Hab mysql_select_db() vergessen. LOL

Aber wie kann es dann sein, dass er überhaupt ein Ergebnis zurückgeliefert hat?
 
Kona hat gesagt.:
Aber wie kann es dann sein, dass er überhaupt ein Ergebnis zurückgeliefert hat?

Das hat doch niemand getan :-)

not a valid MySQL result resource
...kein Ergebnis, zumindest nicht für MySQL.

Wenn ein QUERY fehlschlägt, ist der Rückgabewert von mysql_query() FALSE

Du hast somit mysql_num_rows() auf einen booleschen Wert angewendet, womit es nichts anfangen kann.
 
Zurück