Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: marquito23 le le 10-08-2009 a 23:02:19

Titre: problème connexion serveur
Posté par: marquito23 le le 10-08-2009 a 23:02:19

Bonjour
J´ai sur mon site des problème de connexion et le message d´erreur ci-dessous. Cela met complètement la zone et désespère les utilisateurs et bien sûr je n´arrive pas à joindre l´hébergeur LWS. Quelqu´un peut me donner quelques conseils ou indication sur la source du problème et/ou comment le résoudre ? Ce serait super ..
Merci d´avance

mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web2/,,,,,,,, .php

Titre: Re:problème connexion serveur
Posté par: Krash le le 11-08-2009 a 20:59:16

Le problème ne vient pas de l'hébergeur, la connexion a mysql a été effectué, c'est un problème après. Peux tu nous montrer ton code ?

Titre: Re:problème connexion serveur
Posté par: marquito23 le le 11-08-2009 a 21:17:50

Bonjour,

Alors c'est un script qui s'actualise toute les secondes grâce à l'AJAX, et le voici comme demandé :

<?php
// récupération de l'adresse IP du client (on cherche d'abord à savoir si il est derrière un proxy)
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
elseif(isset($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}

// récupération du nom de la page courante ainsi que ses arguments
if ($_SERVER['QUERY_STRING'] == "") {
$page_courante = $_SERVER['PHP_SELF'];
}
else {
$page_courante = $_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'];
}

$urlsite = $_SERVER['PHP_SELF'];

include("connexion_db.php");

$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip=\'' . $ip . '\'');
$donnees = mysql_fetch_array($retour);

if ($donnees['nbre_entrees'] == 0) // L'ip ne se trouve pas dans la table, on va l'ajouter
{
mysql_query('INSERT INTO connectes VALUES(\'' . $ip . '\', ' . time() . ', \'' . $urlsite . '\', \''. $page_courante . '\')');
}
else // L'ip se trouve déjà dans la table, on met juste à jour le timestamp
{
mysql_query('UPDATE connectes SET timestamp=' . time() . ' WHERE ip=\'' . $ip . '\'');
}

// On supprime toutes les entrées dont le timestamp est plus vieux que 5 minutes

// On stocke dans une variable le timestamp qu'il était il y a 5 minutes :
$timestamp_5min = time() - (60 * 5); // 60 * 5 = nombre de secondes écoulées en 5 minutes
mysql_query('DELETE FROM connectes WHERE timestamp < ' . $timestamp_5min) or die (mysql_error());


// -------
// On compte le nombre d'ip stockées dans la table. C'est le nombre de visiteurs connectés
$retour = mysql_query('SELECT COUNT(*) AS nbre_entrees FROM connectes');
$donnees = mysql_fetch_array($retour);


$result = mysql_query("SELECT COUNT(id) as nb_membres FROM membres");
$data = mysql_fetch_array($result);

$nb_membres = ceil($data['nb_membres'] + 2);

$Jour = array("Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi");
$Mois = array("","Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
$datefr = $Jour[date("w")]." ".date("d")." ".$Mois[date("n")]." ".date("Y");

$heure = date("H:i:s");

$sql = 'SELECT page FROM statistiques ORDER BY date ASC';
$result2 = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_pages_vu = mysql_num_rows($result2);
$moyen_pages = ceil($total_pages_vu / 12);

$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
$moyen_visiteurs = ceil($total_visiteur_depuis_debut / 12);

if($donnees['nbre_entrees'] == 0 ) {
$co = '<b>0</b> connecté';
}
elseif($donnees['nbre_entrees'] == 1) {
$co ='<b>1</b> connecté';
}
else {
$co = '<b>'.$donnees['nbre_entrees'].'</b> connectés';
}

mysql_close();

?>


PS : Je ne sais pas s'il existe sur ce forum des balises exprès pour le PHP et je n'en ai pas trouvé, donc je l'ai mit en italic.

Amicalement,
Marc

Titre: Re:problème connexion serveur
Posté par: Krash le le 11-08-2009 a 21:28:35

Ok et l'erreur est à quelle ligne ?

Il semblerait que ce soit un problème dans les requêtes.

Qu'est ce qui est marqué lorsque tu entres les requêtes suivante directement dans sql sous phpmyadmin ?


SELECT page FROM statistiques ORDER BY date ASC

SELECT DISTINCT(ip) FROM statistiques

Titre: Re:problème connexion serveur
Posté par: marquito23 le le 11-08-2009 a 21:42:56

L'erreur est à la ligne 66 :

$sql = 'SELECT DISTINCT(ip) FROM statistiques';
$result = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$total_visiteur_depuis_debut = mysql_num_rows ($result);
$moyen_visiteurs = ceil($total_visiteur_depuis_debut / 12);


Quand je tape ces requêtes, il n'y a pas d'erreur, il m'affiche bien les enregistrements...

Titre: Re:problème connexion serveur
Posté par: Krash le le 11-08-2009 a 22:02:46

hum c'est bizarre, chez moi ça fonctionne très bien, ce serait possible d'avoir un export de la table statistiques ? Avec quelques entrées ?

Titre: Re:problème connexion serveur
Posté par: pppplus le le 10-09-2009 a 20:48:18

avec le message d'erreur complet, tu as la ligne du fichier et quel fichier php est incriminé.
Il faut regarder la requete précédente, elle doit provoquer une erreur (sûrement dans des cas bien précis).
Une fois cette requête repérée, il est plus facile de trouver le problème


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.