Problème fonction mysql_num_rows

Bonjour,
Je suis en train de mettre ne place un système de News sur un site et j'ai l'erreur suivante :
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\wamp\www\hawx\index.php on line 14
Voici mon code source :
$liendb = mysql_connect("localhost", "root", "");
	mysql_select_db("hawx");
		
	$sql = "SELECT * FROM news ORDER BY id DESC";
	$resultat = mysql_query ($sql);
	$n = mysql_num_rows($resultat);
	for($i = 1; $i <= $n; $i ++)
	{
		$news = mysql_fetch_array($resultat);
		echo"<div id=\"titre_news\">".$news['titre']."</div>";
		echo"<a>".$news['contenu']."</a>";
	}
	mysql_close($liendb);


Merci d'avance de vos réponses

5 réponses

  1. Salut.

    Ça veut dire que $resultat n'est pas une ressource MySQL, donc que la requête SQL a mal été exécutée.

    Tu utilises un lien pour stocker ta connexion MySQL ($liendb), mais tu ne l'indiques pas dans mysql_select_db() et mysql_query(). L'utilisation des liens est inutile quand tu n'as qu'une seule connexion à un serveur SQL.
    0
    1. Donc si j'ai bien compris je n'utilise pas de lien ?
      0
      1. Avec un seul mysql_connect() non.
        0
        1. j'ai suprimé le lien, mais ça m'affiche la même erreur, revoila mon code source :
          mysql_connect("localhost", "root", "");
          		mysql_select_db("hawx");
          		
          		$sql = "SELECT * FROM news ORDER BY id DESC";
          		$resultat = mysql_query ($sql);
          		$n = mysql_num_rows($resultat);
          		for($i = 1; $i <= $n; $i ++)
          		{
          			$news = mysql_fetch_array($resultat);
          			echo"<div id=\"titre_news\">".$news['titre']."</div>";
          			echo"<a>".$news['contenu']."</a>";
          		}
          		mysql_close();
          0
          1. Soit ta requête SQL est mauvaise (nom de table ou colonne 'id' inexistant par exemple), la base de données "hawx" n'existe aps ou tu as mis de mauvaises infos dans mysql_connect()

            Par contre, tu peux utiliser une boucle while() pour afficher les résultats. Lorsqu'il n'y en aura plus, la fonction mysql_fetch_*() retournera false, donc la boucle s'arrêtera.

            while($news = mysql_fetch_array($resultat)) {
            	echo '<div id="titre_news">'.$news['titre'].'</div>';
            	echo '<a>'.$news['contenu'].'</a>';
            }
            0