Compter ligne requête préparée

Résolu
Bonjour,

J'ai cette requête préparée.

Je n'arrive pas à savoir comment faire pour avoir un retour de nombre de lignes. Si des lignes sont trouvées, on affiche le while, sinon on affiche un message d'erreur.

J'ai essayé avec count et comme ci dessous mais j'ai toujours des messages d'erreur...

 
$pseudo = 'natsu';
$statut = 'en_cours';

$stmt = $bdd->prepare('SELECT * FROM shop WHERE pseudo = :pseudo AND statut = :statut');
$stmt->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
$stmt->bindValue(':statut', $statut, PDO::PARAM_STR);
$stmt->execute();

if($stmp > 0)
{
while ($data = $stmt->fetch())
{
echo $data['type'] . '<br />';
echo $data['montant'] . '<br />';
}
}
else
{
echo 'aucune données';
}


Merci

1 réponse

  1. Modérateur
    Bonjour,

    Tu peux essayer avec un fetchAll
    $pseudo = 'natsu';
    $statut = 'en_cours';
    
    $stmt = $bdd->prepare('SELECT * FROM shop WHERE pseudo = :pseudo AND statut = :statut');
    $stmt->bindValue(':pseudo', $pseudo, PDO::PARAM_STR);
    $stmt->bindValue(':statut', $statut, PDO::PARAM_STR);
    $stmt->execute();
    $datas = $stmt->fetchAll();
    
    if(!empty($datas) ) {
       foreach($datas as $data) {
          echo $data['type'] . '<br />';
          echo $data['montant'] . '<br />';
        }
    } else {
      echo 'aucune données';
    }
    

    1. Super ça marche. Merci :)