[SQL/PHP] compter le nombre de champ non vide

Résolu/Fermé
Nemo - 15 août 2009 à 18:50
 Unknown - 14 févr. 2012 à 17:01
Bonjour,
Je possède une table comme suit :

id nom inter1 inter2 interr3
1 Microsoft jean michel
2 Apple roger

je voudrais une sequence SQL/php qui pourrait me retourner le nombre d'intervenant des différentes entreprises. exemple pour
microsoft->2
apple->1

j'imagine que c'est la fonction count() mais je ne sais pas trop comment l'utiliser.

merci d'avance

2 réponses

avion-f16 Messages postés 19249 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 15 juin 2024 4 504
15 août 2009 à 21:13
Rien à voir avec la fonction count().
Il y a plusieurs méthodes pour faire ça et en voici une :
<?php
$sql = 'SELECT * FROM latable ORDER BY nom';
$req = mysql_query($sql);
while($entreprise = mysql_fetch_assoc($req)) {
    echo 'Nom de l\'entreprise : '.htmlspecialchars(stripslashes($data['nom'])).'<br/>';
    $nb = 0;
    if(!empty($data['inter1'])) {
        $nb++;
    }
    if(!empty($data['inter2'])) {
        $nb++;
    }
    if(!empty($data['inter3'])) {
        $nb++;
    }
    echo 'Il y a '.$nb.' intervenants.';
}
?>
0
Bonjour, je profite de votre réponse parce que j'ai le même problème !

J'ai crée la page php pour afficher le nombre des champs replis pour chaque colonne, mais je n'ai que des " 0 " comme résultat et même le 'nom' ne s'affiche pas ...

Type :
Il y a 0 photos. Type :
Il y a 0 photos. Type :
Il y a 0 photos. Type :
. . . .

et pourtant il y a plus de la moitié des champs qui ont des photos (infos)...

Ma base a plus de colonnes que les colonnes que j'ai demande de compter, c'est ça le problème ? Je m'explique, j'ai demande qu'il compte que les champs "photoXX" et dans ma table j'ai d'autres champs que le "ID" "nom" et "photoXX"...

Juste en bas, j'ai copié le code.
Merci d'avance!

<?php
$sql = 'SELECT * FROM photos ORDER BY nom';
$req = mysql_query($sql);
while($entreprise = mysql_fetch_assoc($req)) {
echo ' '.'Type : '.htmlspecialchars(stripslashes($data['nom'])).'<br/>';
$nb = 0;
if(!empty($data['photo01'])) {
$nb++;
}
if(!empty($data['photo02'])) {
$nb++;
}
if(!empty($data['photo03'])) {
$nb++;
}
if(!empty($data['photo04'])) {
$nb++;
}
if(!empty($data['photo05'])) {
$nb++;
}
echo 'Il y a '.$nb.' photos.';
}
?>
0
Le tableau est $entreprise, pas $data
0
merci beaucoup :)
0