mysqgl_num_rows funzt nicht?

g-zus

Erfahrenes Mitglied
Hi leute, ich hab folgendes Script:

PHP:
<?php

include("config.php");

// Name, wie die Tabelle bezeichnet werden soll
$tablename_online = "cpu";

$timelimit = time()-(60*20);
$timelimit2 = time()-(60*10);

   @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
   mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

   $result_online = mysql_query("SELECT * FROM $tablename_online WHERE (datum2>=$timelimit OR msonline>=$timelimit2 OR onlinestatus>=$timelimit)");

@mysql_close();

  

   if(mysql_num_rows($result_online)!=""){

      $user_online = mysql_num_rows($result_online);

   }else{

      $user_online = "0";

   }



echo $user_online;

?>

Das hat auf meinem alten Server super gefunzt, jetzt hab ich nen Serverumzug gemacht und es wird immer das hier angezeigt:

Warning: Supplied argument is not a valid MySQL result resource in /homepages/34/d74130737/htdocs/frankfurt/user_online.php on line 20

Als obs den MySQL-Befehl mysql_num_rows nicht geben würde!
Ich hab dann immer statt mysql_num_rows(...) $result_online in die If-Abfrage gestellt.
Dann wurde halt immer o ausgegeben ====> irgendwas stimmt an der Abfrage nicht, aber was?
Ich hab schon alle Kombinationen von Klammern etc. versucht.
Könnt ihr mir bitte weiterhelfen?
 
hmmm

a) warum machst du mittendrin ein close der db-verbindung - stört nur..

b) datum2>=$timelimit sollte zu
datum2>='$timelimit' werden

sprich für die vergleichswerte ' setzen ..

c) nach dem mysql_query bitte für debug sowas machen:

mysql_query("bla") or die(mysql_error());

d) biste sicher das bei der abfrage wirklich eine ergebnis ungleich null kommen muss ?
sprich gibt es ein datensatz der die abfrage vorraussetzung erfüllt ?

e) mysql_num_rows liefert ein integer den gegen ein string zu vergleichen in der if abfrage macht wenig sinn *g*
 
Zuletzt bearbeitet:
jajaja, ich weiss.
Mein Codingstyle is schrecklich.... ;)

Mir gehts mehr um Funktionalität, hehe.

naja, also funzen tuts, auf dem alten Server von mir.
Aber aufm neuen Server kommt halt die Fehlermeldung.

a. ok, ich werd berücksichtigen (ich versuch halt immer nur die mysql-verbindung schnellstmöglich wieder zu beenden! auch wenns nur ms sind! ;) )

c. vergess ich immer :p

d. ja, is ne realistische bedingung datum2, onlinestatus und msonline sind einfach Zeitstempel, die irgendwann gesetzt wurden und mit der Abfrage soll gecheckt werden, ob und wieviele Einträge in der Tabelle innerhalb dieser Zeitgrenze(n) liegen.
hat außerdem - wie schon gesagt - bisher immer gefunzt

e. hab ich irgendwo mal aufgeschnappt und kriegs nicht mehr raus ausm kopp ;)
wie gesagt, grausamer style mein code, hehe.

PHP:
<?php

include("config.php");

// Name, wie die Tabelle bezeichnet werden soll
$tablename_online = "cpu";

$timelimit = time()-(60*20);
$timelimit2 = time()-(60*10);

   @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");
   mysql_select_db ("$dbname") OR die("Verbindung zur Datenbank fehlgeschlagen");

   $result_online = mysql_query("SELECT * FROM $tablename_online WHERE (datum2>='$timelimit' OR msonline>='$timelimit2' OR onlinestatus>='$timelimit')") or die(mysql_error());

   if(mysql_num_rows($result_online)){

      $user_online = mysql_num_rows($result_online);

   }else{

      $user_online = "0";

   }

@mysql_close();

echo $user_online;

?>

Is der Code besser so?
Ich probier gleich mal.......
 
hm, 2 late.
habs so gelassen und es funzt.
trotzdem thx! ;)

hab aber dafür schon mit etwas anderem probs ey.
ich hasse serverwechsel!!!!!!!!
 
Zurück