Problème fonction mysql_num_rows

Fermé
Nickefmt Messages postés 13 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 16 janvier 2011 - 7 nov. 2010 à 13:22
avion-f16 Messages postés 19247 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 4 juin 2024 - 7 nov. 2010 à 14:52
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

avion-f16 Messages postés 19247 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 4 juin 2024 4 501
7 nov. 2010 à 13:48
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
Nickefmt Messages postés 13 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 16 janvier 2011
7 nov. 2010 à 14:20
Donc si j'ai bien compris je n'utilise pas de lien ?
0
avion-f16 Messages postés 19247 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 4 juin 2024 4 501
7 nov. 2010 à 14:24
Avec un seul mysql_connect() non.
0
Nickefmt Messages postés 13 Date d'inscription mardi 13 avril 2010 Statut Membre Dernière intervention 16 janvier 2011
7 nov. 2010 à 14:44
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
avion-f16 Messages postés 19247 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 4 juin 2024 4 501
7 nov. 2010 à 14:52
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