compter des enregistrements

Eléphant du PHP | 440 Messages

09 janv. 2010, 12:06

Bonjour,

ce code :
                  <?php 
    $table = "matable";  
    $nb = mysql_num_rows(mysql_query("SELECT Adhesion FROM $table"));
	echo '<b><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#333333">'.$nb.'</font></b>'; 
?>
m'affiche le nombre d'enregistrements total ; c'est normal! Je souhaiterais qu'il m'affiche le nombre d'enregistrements pour lesquels le champ 'adhesion" contient une valeur.

J'ai beau tourner en rond sur tous les sites je ne trouve pas de réponses. Je pensais qu'un WHERE dans le SELECT conviendrait (mais avec quoi derrière ???).

Merci pour votre aide.
Débutant complet en php/mysql. Merci pour votre aide.

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

09 janv. 2010, 12:26

essai plutot
SELECT count(Adhesion) FROM $table WHERE Adhesion<>'' AND Adhesion NOT NULL
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

Eléphant du PHP | 440 Messages

09 janv. 2010, 13:10

si tu veux dire
<?php 
    $table = "matable";  
    $nb = mysql_num_rows(mysql_query("SELECT count(Adhesion) FROM $table WHERE Adhesion<>'' AND Adhesion NOT NULL"));
	echo '<b><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#333333">'.$nb.'</font></b>'; 
?>
ça ne fonctionne pas.
Débutant complet en php/mysql. Merci pour votre aide.

Eléphant du PHP | 440 Messages

09 janv. 2010, 13:28

ca marche ainsi
                  <?php 
    $table = "matable";  
    $nb = mysql_num_rows(mysql_query("SELECT Adhesion FROM $table WHERE Adhesion<>''"));
	echo '<b><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#333333">'.$nb.'</font></b>'; 
?>
Merci.
Débutant complet en php/mysql. Merci pour votre aide.

Eléphant du PHP | 63 Messages

09 janv. 2010, 14:28

Bonjour, pour des raisons de performance il vaut mieux effectuer un COUNT(*).
Essaie ceci :
<?php

$res = mysql_query("SELECT COUNT(*) AS total FROM matable WHERE Adhesion != ''");
$row = mysql_fetch_array($rew);
$num = $row['total'];

echo '<b><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#333333">', $num, '</font></b>';

?>
Je pense qu'il s'agit de la meilleur façon de procéder.

ViPHP
ViPHP | 2291 Messages

09 janv. 2010, 16:51

Bonjour, pour des raisons de performance il vaut mieux effectuer un COUNT(*).
Essaie ceci :
<?php

$res = mysql_query("SELECT COUNT(*) AS total FROM matable WHERE Adhesion != ''");
$row = mysql_fetch_array($res );
$num = $row['total'];

echo '<b><font face="Verdana, Arial, Helvetica, sans-serif" size="5" color="#333333">'. $num. '</font></b>';

?>
Je pense qu'il s'agit de la meilleur façon de procéder.
Modifié en dernier par dunbar le 10 janv. 2010, 11:06, modifié 1 fois.
ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Eléphant du PHP | 63 Messages

09 janv. 2010, 23:30

Merci dunbar pour la correction de la faute :roll: