Salve,
ho un server virtuale, e su tutti i vari siti, negli script ( non in tutti ) in cui uso la funzione mysql_num_rows(), mi danno il seguente errore:
Codice PHP:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource
Il problema è che tutto ha sempre funzionato regolarmente, ora, inspiegabilmente, andando a visitare i siti, trovo in varie parti questo errore.
Che si siano corrotte le tabelle in tutti i vari database, non credo proprio anche perchè ieri, a una certa ora, questo errore non lo dava più, dopo ha ricominciato.
Ad esempio per contare gli utenti on line, utilizzo questo script:
Codice PHP:
<?
// EDITING STARTS
$dbhost = "localhost";
$dbname = "csiuser";
$dbuser = "csiuser";
$dbpass = "bla bla";
// EDITING ENDS
$db = mysql_connect("$dbhost","$dbuser","$dbpass");
mysql_select_db("$dbname") or die( "Unable to select database.");
$ip = $_SERVER['REMOTE_ADDR'];
$where = $_SERVER['PHP_SELF'];
$timestamp = time();
$timeout = 300;
$noofrows = 0;
$result1 = mysql_query("SELECT * FROM usersonline");
while ($result2 = mysql_fetch_array($result1)) {
if ($result2[1] == $ip) {
$noofrows = 1;
}
}
if ($noofrows == 1) {
mysql_query("UPDATE usersonline SET timestamp = '$timestamp', url = '$where' WHERE ip = '$ip'");
}
if ($noofrows == 0) {
mysql_query("INSERT INTO usersonline (ip, timestamp, url) VALUES ('$ip', '$timestamp', '$where')");
}
$alt = $timestamp-$timeout;
mysql_query("DELETE FROM usersonline WHERE timestamp < '$alt'");
$result3 = mysql_query("SELECT DISTINCT ip FROM usersonline");
$online = mysql_num_rows($result3);
echo "$online";
?>
cono struttura database:
Codice PHP:
CREATE TABLE usersonline (
id int(10) NOT NULL auto_increment,
ip varchar(255) NOT NULL default '',
timestamp varchar(255) NOT NULL default '',
url varchar(100) NOT NULL,
PRIMARY KEY (id)
)
Ha sempre funzionato tutto regolarmente ed ora mi ritrovo con l' errore di cui sopra.
Qualcuno sà darmi una spiegazione e aiutarmi?