Warning: mysql_fetch_array()

Fermé
legolasfr - 12 mars 2009 à 09:56
NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 - 12 mars 2009 à 10:28
Bonjour,voici mon problème je viens d'installer mon site tout fonctionne bien sauf qu'il s'affiche sa je suis un peu nul en programmation et j'aurais besoin de votre aide voici mes erreurs :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\kernel\connectes.php on line 14

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\kernel\connectes.php on line 35

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\wamp\www\kernel\connectes.php on line 38

et voici le fichier :

<?php
require("config.php");

$ip = $_SERVER['REMOTE_ADDR'];
$account = $_SESSION['username'];
$time = time();

mysql_select_db($sitewoo,$connexion);

// -------
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
$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')");
}
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'");
}

// -------
// ETAPE 2 : 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);

// -------
// ETAPE 3 : 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);

$retour2 = mysql_query('SELECT COUNT(*) AS nbre_invite FROM connectes');
$donnees2 = mysql_fetch_array($retour2);


// Ouf ! On n'a plus qu'à afficher le nombre de connectés !
echo 'Il y a ' . $donnees['nbre_entrees'] . ' visiteur(s) <br>sur le site !';

?>

Voila pouvez vous m'aider au plus vite je vous en remercie par avance
Cordialement, legolasfr

1 réponse

NookZ Messages postés 2138 Date d'inscription jeudi 29 janvier 2009 Statut Membre Dernière intervention 7 mars 2013 513
12 mars 2009 à 10:28
Faites les modifs suivantes pour connaître plus précisément la raison du problème :


mysql_select_db($sitewoo,$connexion) or die("erreur de connexion".mysql_error());

// -------
// ETAPE 1 : on vérifie si l'IP se trouve déjà dans la table
// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "ip" est l'adresse ip du visiteur
$retour = mysql_query("SELECT COUNT(*) AS nbre_entrees FROM connectes WHERE ip='$ip'") or die("erreur dans la requête".mysql_error());;
$donnees = mysql_fetch_array($retour);
-1