Bonjour,

J'ai reçus depuis un champs des id qui sont séparé par des virgule je souhterais aprés les chercher sur ma base donnée voir si il correspond sauf que le probléme c'est je ne sais pas comment faire pour récuperer le nombre de partie qui à atait faite pour faire la requete.

$id_groups = explode('/', $id_group);
            $usergroup = $userModel->getUserGroup($id_groups);

Model :

public function getUserGroup($id)
    {
        $db = XenForo_Application::get('db');

        $req = $db->query('SELECT * FROM xf_user_group WHERE id = ?', [$id]);

        return $req;
    }

8 réponses


SLK
Réponse acceptée

Oh super, je ne connaissais pas ça.
Merci Huggy ^^

salut,

j'ai beaucoup de mal à te comprendre mais il me semble que ce que tu cherches c'est la fonction count().

Au passage, attention :

  • tu dis que les IDs sont séparés par des virgules mais dans ton "explode" tu utilise le "slash" comme "delimiter".
  • tu as écris $id_group une fois au singulier et au pluriel.
  • tu utilises une requête "query" avec la syntaxe d'une requête préparée.

Est-ce que ce genre de chose peut répondre à ta question ?

$id_groups = explode(',', $id_groups);
$nb_id = count($id_groups);

Je pense que tu cherches à faire quelque chose du style :

    $id_groups = explode(',',$id_group);
    foreach ($id_groups as $k => $v){
        $usergroup = $userModel->getUserGroup($v);
        //après tu peux rajouter des conditions
    }

mais peut être ai-je mal compris ta demande !

ah ouais bien vu, moi je pari sur ta réponse ^^

si ça marche n'hésites pas à valider mon commentaire ;)

re gg
Auteur

Normal que id_group est au pluriel car je stocke le "explode" dedans. J'utilise un CMS XenForo du coup j'ai pas besoin de faire la requete préparé.
En gros le explode ma déviser 3 id en 3 partie le probléme c'est pour faire ma requete car je vousdrais que pdo regarde si les 3 id existe dans la bdd

Ah d'accord.

En gros le explode ma déviser 3 id en 3 partie
Attends, est-ce qu'on parle bien d'un truc comme ça ?

$id_group = "8,17,42";
$id_groups = explode(',', $id_group);
//  $id_groups vaut :
//    array(
//        [0] => "8",
//        [1] => "17",
//        [2] => "42"
//    )

Si c'est bien ça, massadu33 t'as donné la bonne réponse.

le probléme c'est pour faire ma requete car je vousdrais que pdo regarde si les 3 id existe dans la bdd
Maintenant que tu as les IDs qu'il faut vérifier, bien séparés, tu fait un foreach sur $id_groups pour faire ta requête.
Il me semble que le fait qu'ils soient des "string" ne pose pas de problème.

Si vraiment ce n'est pas ce que tu recherches, essaie d'expliquer clairement ce qu'il te faut.

Tu devrais pouvoir faire une requête en utilisant in :

SELECT * FROM xf_user_group WHERE id in (8, 17, 42)

donc en rajoutant la listes des groupes séparés par des virgules