tout d'abord je n'ai aucune notion de langage php
J'ai une erreur sur une page de mon site qui indique :
Warning : mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homez.157/infofaci/www/include/Curseur.php on line 69
Cette page permet d'afficher une liste de message que je reçoit par le formulaire de contact de mon site.
Voici le code php contenue dans cette page :
<?
include("../include/Curseur.php");
$nb = Array("a","z","e","r","t","y","u","i","o","p","q","s","d","f","g","h","j","k","l","m","w","x","c","v","b","n","aa","az","ae","ar","at","ay","au","ai","ao","ap","aq","as","ad","af","ag","ah","aj","ak","al","am","aw","ax","ac","av","ab","an","za","zz","ze","zr");
if (!isset($_GET["sens"]))
{
$_GET["sens"] = "ASC";
}
$gallerie = new Curseur();
$gallerie->reqSelect("SELECT `sujet` , `email`, `ville` , `date` , `heure`, `vu` , `id`
FROM `msg`
ORDER BY date ".$_GET["sens"]." , heure ".$_GET["sens"]."
");
$i = 0;
while ($gallerie->Eof() == false)
{
if ($gallerie->Champs("vu") == "0")
{
$etat = "unread";
}
else
{
$etat = "read";
}
$random = rand(0,3);
echo "<tr OnClick=\"document.".$nb[$i].".src = 'read.png'\" border=\"0\" onmouseover=\"this.className='sl".$random."'\" onmouseout=\"this.className='nsl'\" >
<td onclick=\"javascript:opw('message','message.php?id=".$gallerie->Champs("id")."',0,0,788,350,0,0,0,0,0)\" width=\"30\"><p align=\"center\"><a href=\"javascript:opw('message','message.php?id=".$gallerie->Champs("id")."',0,0,650,400,0,0,0,0,0)\"><img name=\"".$nb[$i]."\" src=\"".$etat.".png\" OnClick=\"this.src = 'read.png'\" border=\"0\"></a></p></td>
<td onclick=\"javascript:opw('message','message.php?id=".$gallerie->Champs("id")."',0,0,788,350,0,0,0,0,0)\" width=\"308\"><font size=\"2\" face=\"Segoe UI\"><b><u>".$gallerie->Champs("type")."</u></b></font></td>
<td onclick=\"javascript:opw('message','message.php?id=".$gallerie->Champs("id")."',0,0,788,350,0,0,0,0,0)\" width=\"344\"><font size=\"2\" face=\"Segoe UI\"><b><u>".stripslashes($gallerie->Champs("tel"))."</u></b></font></td>
<td onclick=\"javascript:opw('message','message.php?id=".$gallerie->Champs("id")."',0,0,788,350,0,0,0,0,0)\" width=\"310\"><font size=\"2\" face=\"Segoe UI\"><b><u>".$gallerie->Champs("date")." a ".$gallerie->Champs("heure")."</u></b></font></td>
<td width=\"30\" >
<p align=\"center\"><a href=\"javascript:confirmer('".$gallerie->Champs("id")."')\"><img src=\"delete_icon.gif\" width=\"26\" height=\"26\" border=\"0\"></a></p>
</td>
</tr>";
$gallerie->suivant();
$i++;
}
?>
L'erreur semble renvoyer vers la page Curseur.php dont voici le code :
<?
//---------------------------------------------------------------------------------
//--- Curseur.php : Classe qui permet d'accéder aux infos de la base de données ---
//--- Auteur : Blasco A Date: 10/11/2005 ---
//---------------------------------------------------------------------------------
class Curseur {
//---Liste des propriétés---
var $req ;
var $ligne ;
var $eof ;
var $ok_radmin ;
//var $ok_rselect ;
//---Constructeur qui permet de se connecter à la base de donnée---
function Curseur(){
mysql_connect("mysql5-3","infofaciinfofa","mandrake")
or die("Erreur de connexion au serveur");
mysql_select_db("infofaciinfofa")
or die("Erreur sur le nom de la base de donnée");
}
//---Fonction qui retourne le résultat de la requète placée en paramètre et qui lit le premier enregistrement---
function reqSelect($REQ){
//$ok_rselect = true;
$this->req = mysql_query($REQ);
if($this->nbLigne() != 0){
$this->Suivant() ;
} else {
$this->eof = true ;
}
}
//function SelectOk()
// {
// return $ok_rselect;
// }
//---Fonction qui retourne le résultat de la requète placée en paramètre---
function reqAdmin($REQ){
$this->ok_radmin = true ;
mysql_query($REQ)
or $this->ok_radmin = false;
}
function AdminOk()
{
return $this->ok_radmin;
}
//---Récupére une ligne de la requéte possée précédamment---
function Suivant(){
$this->eof = !$this->ligne = mysql_fetch_assoc($this->req);
}
//---Retourne le contenu du champ d'un numéro de ligne passé en paramètre---
function ChampsIndex( $index, $champ){
return mysql_result($this->req,$index,$champ);
}
//---Retourne le numéro du dernier élément inséré ---
function ID_Insert(){
return mysql_insert_id();
}
//---Retourne le nombre d'éléments dans la requète---
function nbLigne(){
return mysql_num_rows($this->req);
}
//--- Donne l'information de la fin du curseur---
function Eof(){
return $this->eof;
}
//---Ferme le curseur---
function Fermer(){
mysql_close();
}
//---Retourne le contenu du champ---
function Champs($champ){
return $this->ligne[$champ];
}
}
?>
Je le répète je n'y comprend pas grand chose en php Je vous remercie par avance pour votre aide.
Christophe