[RESOLU] Problème affichage dans une boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème affichage dans une boucle

Re: Problème affichage dans une boucle

par yoann38 » 09 juin 2019, 08:59

Sérieux.....mouarf un copié collé de trop, j'étais trop dessus je ne l'avais même pas vu.
Merci

Re: Problème affichage dans une boucle

par or 1 » 09 juin 2019, 00:39

cela vient de
$row = $site_membre->fetch(PDO::FETCH_ASSOC);
le premier résultat est dans $row et rien n'est fait de $row.

Problème affichage dans une boucle

par yoann38 » 08 juin 2019, 23:14

Salut tout le monde,
Voilà j'ai une requete qui me permet de récuperer tous mes éléments que je classe ensuite selon le critère valide.
Ma requete et ma boucle fonctionne, cependant j'ai quelque chose que je ne comprends pas c'est que la première entrée n'apparait pas.
En testant la Requete dans PMA pas de problème et je fait un cout sur la req pas de problème j'ai bien le compte, du coup je pense que le soucis viens de la boucle mais où...

Du coup dans ma bdd en fait la première entrée est comme si elle était ignoré peut importe que valide soit 1 ou 0
Ma requete de base:
$site_membre = $bdd->prepare("SELECT * FROM siteweb WHERE id_membre =:id_membre ORDER BY valide");
$site_membre->bindParam(':id_membre', $id_membre, PDO::PARAM_INT);
$site_membre->execute();
$row = $site_membre->fetch(PDO::FETCH_ASSOC);
J'ai testé un count en requete pour voir
$sql = $bdd->prepare("SELECT * FROM siteweb WHERE id_membre =:id_membre AND valide = 0");
$sql->bindParam(':id_membre', $id_membre, PDO::PARAM_INT);
$sql->execute();
$nb_de_site_valide= $sql->rowCount();
Le while permettant d'affiché mes entrées:
<?php
				// Si il y a minimum 1 site de Publié
				if($site_membre->rowCount() > 0) {	
					while($liste_site_membre = $site_membre->fetch(PDO::FETCH_ASSOC)){  
						
						// Traitement pour le statut du site
						if($liste_site_membre['valide'] == 0) {	
							$statut = '<li><span class="btn-wait">En attente</span></li>';
							$message_statut = '<em>Site en cours de validation</em>';
							
							
						}else{
							$statut = '<li><a href="#0" class="btn-success">Site validé</a></li>';
							$message_statut = '<li><a href="fiche-'.simplification($liste_site_membre['sous_categorie']).'-'.simplification($liste_site_membre['nom_site']).'-'.$liste_site_membre['id_site'].'.html"><span class="pe-7s-right-arrow"></span></a></li>';
						}
						// End Traitement pour le statut du site						
						
					echo '<div class="review_card">
						<div class="row">
							<div class="col-md-2 user_info">
								<img class="img-fluid" src="vignette/'.$liste_site_membre['nom_site'].'.jpg" alt="miniature du site '.$liste_site_membre['nom_site'].'">
							</div>
							<div class="col-md-10 review_content">
								<h4><a href="fiche-'.simplification($liste_site_membre['sous_categorie']).'-'.simplification($liste_site_membre['nom_site']).'-'.$liste_site_membre['id_site'].'.html">'.$liste_site_membre['nom_site'].'</a></h4>
								<p>'. ucfirst(strtolower(stripslashes(cutTexte($liste_site_membre['description_site'], 300, '...')))).'</p>
								<ul>
									'.$statut.'
									'.$message_statut.'
								</ul>
							</div>
						</div>
					</div>';
					}
				}else{
					echo'Vous n\'avez pas encore publiez ';
				}
				?>
Merci pour le coup de pouce
EDIT:
Je vien d'essayer en minimisant ma boucle et requete mais meme probleme:
<?php
				$site_membre = $bdd->prepare("SELECT * FROM siteweb WHERE id_membre =:id_membre");
				$site_membre->bindParam(':id_membre', $id_membre, PDO::PARAM_INT);
				$site_membre->execute();
				$row = $site_membre->fetch(PDO::FETCH_ASSOC);
	
					while($liste_site_membre = $site_membre->fetch(PDO::FETCH_ASSOC)){  
					    echo $liste_site_membre['nom_site'];
					}
?>