Compter les entrées d'une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Compter les entrées d'une table

par agité » 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 :!:

par Ryle » 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

par agité » 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...

par Cyrano » 15 mai 2006, 07:01

Quand tu postes ce genre de message, mets la requête utilisée avant le message d'erreur qu'on puisse avoir un élément à analyser: ta requête a dû évoluer depuis le début du sujet, mais tu ne l'indiques pas...

Fais-nous un copier/coller de la requête.

par agité » 14 mai 2006, 23:52

Code : Tout sélectionner

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '*) AS nb FROM `mix`
pourtant ma synthaxe est correct non ?

par agité » 14 mai 2006, 23:44

:D

ralala ces jeunes hein :D

Bah j'vais essayer de comprendre le pourquoi du comment mais c'est pas sur la synthaxe que ca merde mais plutôt sur la requete je pense donc je vais tester tout un par un

par Truc » 14 mai 2006, 23:13

Parfois je préfèrerais voir ce genre de message que des
"Unknown error on line ... " que peut nous rapporter la console JS de IE :P
au moins ça peut faire rire un moment.

Sinon ajoute un mysql_error() pour afficher le message d'erreur en rapport avec l'exécution.

par Cyrano » 14 mai 2006, 23:02

il m'indique qu'a la ligne 213 ca merde...
Ton serveur MySQL est vraiment vulgaire, tu devrais le mettre à jour, le mien ne m'a jamais envoyé ce genre de message :langue:

par agité » 14 mai 2006, 23:01

la dessus pas de problème la variable de session passe sans problème je l'utilise ailleur sur cette page et il me l'affiche bien la il m'indique qu'a la ligne 213 ca merde :
$var=mysql_fetch_array($nb);

par Truc » 14 mai 2006, 22:49

décompose l'exécution pour pouvoir afficher la reqête:
$sql="SELECT COUNT (*) AS nb FROM `mix` WHERE nom LIKE '".$_SESSION['login']."' ";
echo $sql;

$nb = mysql_query($sql);        
$var=mysql_fetch_array($nb);
vérifie que la variable de session passe bien.

par agité » 14 mai 2006, 21:47

plutôt :
	echo "Musique en ligne (".$var['nb'].")";
comme echo mais toujours la même erreur

par agité » 14 mai 2006, 20:30

$nb = mysql_query("SELECT COUNT (*) AS nb FROM `mix` WHERE nom LIKE '".$_SESSION['login']."' ");		
 $var=mysql_fetch_array($nb);
et j'ai une erreur en faisant
echo "Musique en ligne (".$nb.")";
Une idée :?:

par Truc » 14 mai 2006, 16:17

affiche la requête générée pour vérifier qu'elle est complète niveau variables.

En passant l'exemple du 1er post n'as rien à voir avec le dernier exemple qui devrait fonctionnner si la variable de session est bien affectée et en ajoutant un pti WHERE :wink:

par agité » 14 mai 2006, 14:20

Je suis au boulot et j'ai pas le code sous la main :D je vous donne ca quand je rentre chez moi mais c'est de la forme :
$nb = mysql_query("SELECT COUNT (*) As nb FROM `matable` LIKE '".$SESSION['login']."' ");
$var = mysql_fetch_array($nb);

echo $var['nb'];

par popi » 14 mai 2006, 14:16

SAlut agité, tu peux nous montrer la requête complète ?