Compter les entrées d'une table

Mammouth du PHP | 965 Messages

16 mai 2006, 12:01

<?php

if(isset($_GET['PHPSESSID'])) {

	$sql="SELECT COUNT (*) AS nb FROM `mix` WHERE artiste LIKE '".$_SESSION['login']."' ";
	$nb = mysql_query($sql);
	$var2=mysql_fetch_array($nb);
																
	echo mysql_error();
	echo "Musique en ligne (".$var2['nb'].")";

}else{
	echo "erreur";
}

?>
Voila la requete complete et j'ai verrifier avec la base de donnée que artiste et mix correspondaient bien.

Je ne vois pas d'ou viens mon erreur...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 mai 2006, 12:07

Moi je mettrais pas d'espace entre le COUNT et la parenthèse :

Code : Tout sélectionner

SELECT COUNT(*) AS nb ...
Je corrigerais également l'utilisation du mysql_error en ne l'appelant qu'en cas d'erreur du mysql_query :
$nb = mysql_query($sql) or die (echo mysql_error()) ; 
Et puis j'ajouterais je pense un, voire deux % dans la chaine recherchée par le like pour avoir les élément contenant cette chaine. Si c'est la chaine exacte qu'il te faut, un égal sera beaucoup plus performant que le like :

Code : Tout sélectionner

WHERE artiste LIKE '%".$_SESSION['login']."%' // contenant ou WHERE artiste = '".$_SESSION['login']."' // identique

Mammouth du PHP | 965 Messages

16 mai 2006, 12:12

Voila plus de soucis tu avais raison la synthaxe ne devait pas être correct après modif tout marche parfaitement !

Merci bien Ryle :!: