Problème d'affichage
- Accueil
- Forum
- Programmation
- PHP
- Problème d'affichage
Keitaoxmo Le 16 septembre 2016 à 20:53 (Édité le 25 janvier 2019 à 17:52)
TheOldNoob Le 17 septembre 2016 à 01:17 (Édité le 17 septembre 2016 à 01:20)
Autant j'aime bien les puzzle, que la c'est pas possible....
Sinon, il te manque des fermeture de balise, des fermetures de quote ou double quote, des fermetures de chevrons, des fermetures de php.
Je pense que le problème viens d'un manque de relecture de ton code.
Keitaoxmo Le 17 septembre 2016 à 04:02 (Édité le 1 janvier 1970 à 01:00)
Pour les besoins de mon projet, je souhaite recommencer les fetch() un peu plus loin dans ma page après avoir déjà parcouru les résultat d'une requête (faite avec la méthode query())...
Je m'explique :
J'ai écrit une requête pour récupérer des données dans ma base MySQL et j'ai effectué un affichage des résultats obtenus avec fetch().
Mais, un peu plus loin, dans la même page, je souhaite réitérer ces résultats afin de les traiter différemment.
En clair, voici ce que ça donnerait :
<?php
$bdd = new PDO('mysql:localhost;dbname=mabase', 'root', '');
$donnees = $bdd->query('SELECT * FROM maTable');
while($donnee = $donnees->fetch())
{
// 1er traitement des résultats
}
while($donnee = $donnees->fetch())
{
// 2ème traitement des résultats
}
Comme vous pouvez le voir, la deuxième boucle ne fonctionnera pas car j'ai déjà parcouru les résultats dans la première boucle.
Existe-t-il une méthode dans PDO qui permettrait de retourner au début des résultats pour que la 2ème boucle s'exécute correctement, sans avoir à refaire la requête de la ligne 3 ?
Merci d'avance pour votre réponse
kinginventeur Le 17 septembre 2016 à 17:49 (Édité le 1 janvier 1970 à 01:00)
Je crois que tu peux utiliser sa.
<?php$bdd = new PDO('mysql:localhost;dbname=mabase', 'root', '');$donnees = $bdd->query('SELECT * FROM maTable');
while($donnee = $donnees->fetch()){
// 1er traitement des résultats}
$donnee->closeCursor();
while($donnee = $donnees->fetch()){
// 2ème traitement des résultats}
Balatharas Le 17 septembre 2016 à 18:08 (Édité le 1 janvier 1970 à 01:00)
pourquoi ne pas faire tout simplement:
<?php
$bdd = new PDO('mysql:localhost;dbname=mabase', 'root', '');
$donnees = $bdd->query('SELECT * FROM maTable');
$donnees2 = $bdd->query('SELECT * FROM maTable');
while($donnee = $donnees->fetch()) {
// 1er traitement des résultats
}
while($donnee2 = $donnees2->fetch()) {
// 2ème traitement des résultats
}
Ça te ne coûte qu'une ligne 😗