Requête SQL qui bloque au premier tour !

Par Alex, il y a 10 ans


Bonjour tout le monde, j'ai un petit problème...

Voici ma requête SQL:

$name = $_GET['namem']; $q = array('names'=>$name. '%'); $req = $pdo->prepare('SELECT id,nom, status, date_inscription, admin, nom from users WHERE nom like :names'); $req->execute($q); while ($m = $req->fetch()) {

Et donc, mon problème est le suivant, après avoir trouvé 1 personne, ça s'arrête.... Mais je ne comprends pas pourquoi ça ne veut pas aller plus loin ? Qui serait m'aider ?
Merci de l'aide, et de m'expliquer pour ne plus refaire l'erreur.

6 réponses

kanah, il y a 10 ans

Salut,

Il faut que tu fasses un fetchAll

Alex, il y a 10 ans

Avec le While _a marchera quand même?

shadow49, il y a 10 ans

Pour ma part, il faudrait créer une variable intermédiaire qui contient le résultat retourné par un fetchAll(). Ensuite boucle sur cette derniere avec un foreach.

Steeve VERDIEU, il y a 10 ans

Il faut que tu fasse un fetchAll(); du coup ta requete va te renvoyer toutes enregistrement correspondant au critere like que tu a mis. Ensuite pour recuperer chaque resultat, tu fais un petit foreach.

Alex, il y a 10 ans

Merci pour vos réponses ça marche !

Du coup voici mon code:

    $name = $_GET['namem'];
            $q = array('names'=>$name. '%');
    $req = $pdo->prepare('SELECT id,nom, status, date_inscription, admin, nom from users LIMIT 15');
    $req->execute($q);
        foreach ($req->fetchAll() as $m) {
Steeve VERDIEU, il y a 10 ans

Ouais, c'est bien, maintenant tu recupere les valeurs des champs en passant par la variable m.