[PHP] Besoin d'aide pour un script

Bonjour, c’est encore une fois moi :slight_smile:

J’ai dans une BDD MySQL, plusieurs lignes, avec une colonne où les valeurs sont de type 1,2,0,0 ou 1,2,3,0 ou 3,4,0,0 … Disons que chaque valeur que j’ai écris soit dans la même colonne mais sur 3 lignes différentes:

NuméroLigne | Colonne1
1 | 1,2,0,0
2 | 1,2,3,0
3 | 3,4,0,0

Quelqu’un peut m’aider à faire un script php pour que je puisse retrouver le nombre de fois qu’il y a de 1, de 2, de 3…etc… au total?

Je pensais à faire avec un explode mais je bloque et je ne suis pas sur que ca soit la bonne méthode.

Tu as toujours que 4 valeurs? Pourquoi ne fais tu pas simplement 4 colonnes? Sinon tu as in_array pour rechercher une valeur dans un tableau.

Ou tu as aussi cette technique :

$x = array();
// pour chaque ligne
while (...) {
  $a = explode(',', $ligne);
  foreach ( $a as $t ) {
    $v = (int) $t;

    if ( !isset($x[$t])) $x[$t] = 0;
    else ++$x[$t]; 
  }
}
var_dump($x);

Voilà

merci, je me suis servi de in_array, cela fonctionne comme je veux :smiley:

C’est plus lent ceci dit.

Salut,

Je voulais juste dire qu’il existe une fonctions pour compter le nombre d’enter dans une table ou dans un tableau, mais je sais pas si j’ai bien compris ce que tu voulais faire.
C’est peut être plus approprié…

Regarde dans le manuel de PHP
Pour compter dans un tableau -> Fonction "count"
Via une requête SQL sa par exemple :

$sql2 = mysql_query("SELECT COUNT(*) AS nb_msg FROM commentaires WHERE idnews=" . $_GET['idnews'] . " "); // On compte le nombre de commentaires pour la news

Nope, son problème c’est de compter le nombre d’occurrences de X dans la colonne 1

Si il cherche seulement a compté le nombre de ligne ou le chiffre recherché exite (ou si le chiffre recherché ne peut etre qu’une fois par ligne )
il peux faire :

$nbr = 2;
$res = mysql_query("SELECT COUNT(*) AS nb_msg FROM commentaires WHERE Colonne1 LIKE %".$nbr."%");
echo $res['nb_msg'];

par contre sa ne marche pas si tu as plusieurs 2 sur ta ligne (sa le comptera qu’une foi)

Donc, si je comprend, si la colonne ressemble à 21 et que je recherche 2, j’obtiens 1 ? Pertinent comme résultat.