Bonjour
Dites-moi si je me trompe, mais j'en étais restée là.
On fait sans arrêt du SQL à la volée, et on a BESOIN pour l'algo de savoir si une requête produite ainsi retourne 0 ou n résultats.
En PDO, pas de fonction classique num_rows sur un select.
Donc la SEULE façon de contourner le problème est d'utiliser ce genre de logique (un query sur une requête count, un execute sur la requête select.
1) Dites-moi si j'ai bon là dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 $data=array(); $sqlCount='select count(distinct id) as nb from matable where champ="'.$filtre.'";'; if($res=$pdo->query($sqlCount)){ if ($res->fetchColumn() > 0){ $sql='select champ1,champ2,champ3 from matable where champ="'.$filtre.'";'; $stmt=$dereq->prepare($sql); $stmt->execute(); while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ array_push($data,$row); } } else{ echo 'Cette requête ne retourne aucun résultat.'; } }
2) Si oui, mon problème est le suivant :
Quand on génère des requêtes UNION à la volée, voir d'autres requêtes tout aussi alambiquées (sous requetes etc), comment coder le count... Avant de me lancer dans du traitement de chaînes un peu torturé, j'aimerais savoir si vous avez d'autres méthodes.
Merci d'avance,
Sylvie
Partager