Bonjour, je veux simplement afficher des données de ma bd en utilisant des procédures stockées et pdo
Si JE N'UTILISE PAS LES PROCEDURES STOCKEES ET PDO => aucun problème pour imbriquer 2 While
Ce qui donne le bon résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $sql = "SELECT * FROM fiche_travail WHERE fitr_cloturer = 't'"; $result = mysql_query ($sql, $link); while($myrow=mysql_fetch_array($result)) { echo " Fiche numéro $myrow[idfichetravail] du $jour-$mois-$annee pour le véhicule "; $sql2 = "SELECT * FROM vehicule WHERE idvehicule = '$myrow[idvehicule]'"; $result2 = mysql_query ($sql2, $link); while($myrow2=mysql_fetch_array($result2)) { echo "dont l'id est $myrow2[idvehicule]"; } }
Maintenant, je remplace mes requêtes sql "classique" par le pdo comme ceci :Fiche numéro 4 du 04-01-2010 dont l'id est 1
Fiche numéro 5 du 05-01-2010 dont l'id est 2
Fiche numéro 6 du 06-01-2010 dont l'id est 2
Fiche numéro 7 du 07-01-2010 dont l'id est 3
Cette fois, le résultat est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 $stmt = $conn->prepare("CALL FichesTraitees()"); $stmt->execute(); while($myrow = $stmt->fetch(PDO::FETCH_BOTH)) { echo " Fiche numéro $myrow[idfichetravail] du $jour-$mois-$annee pour le véhicule "; $idvehicule="$myrow[idvehicule]"; $stmt2 = $conn->prepare("CALL OneVehiculeById(?)"); $stmt2->bindParam(1,$idvehicule); $stmt2->execute(); while($myrow2 = $stmt2->fetch(PDO::FETCH_BOTH)) { echo "dont l'id est $myrow2[idvehicule]"; } }
La deuxième boucle n'est pas prise en compte lors du premier enregistrementFiche numéro 4 du 04-01-2010 pour le véhicule
Fiche numéro 5 du 05-01-2010 pour le véhicule dont l'id est 2
Fiche numéro 6 du 06-01-2010 pour le véhicule dont l'id est 2
Fiche numéro 7 du 07-01-2010 pour le véhicule dont l'id est 3
Et si je met une troisième boucle d'affichage (donc 3 éléments à afficher par ligne)
La première ligne : 1 élément s'affiche
La deuxième ligne : 2 éléments s'affiche
Toutes les autres lignes : tout est bon !!
Merci pour votre aide
Partager