Doublon dans un while ?

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 : Doublon dans un while ?

Re: Doublon dans un while ?

par wwwbillgates » 30 juin 2016, 16:43

Salut merci pour ton aide j'ai fais comme ceci ce qui fonctionne et me semble être ce que tu me conseillait ?
$article = '';
while( $articles = $sql_articles->fetch() ) {

	if ($articles['titre'] != $article) { 
               echo $articles['titre'].'<br />'; 
              $article = $articles['titre'];
        }

}

Re: Doublon dans un while ?

par or 1 » 30 juin 2016, 15:47

c'est pas un problème de jointure, mais d'affichage à partir du résultat.
si
echo $articles['titre'].'<br />';
n'est exécuté qu'une seule fois, alors le résultat sera celui escompté.

Doublon dans un while ?

par wwwbillgates » 30 juin 2016, 15:37

Bonjour à tous, je souhaiterais utiliser une requête avec jointure dans un while.
Mais le problème qui se pause est que le résultat de mon titre (1 résultat) est dupliqué dans mon while à chaques nouveaux résultats de texte (3 résultats).
$sql_articles = $bdd->prepare("
						SELECT
							A.titre AS titre,
							B.texte AS texte
						FROM articles A
						JOIN articles_textes B
						ON A.id = B.id_article
						WHERE A.id = :id
						");
$sql_articles->execute(array(
						'id' => $id
						));
$sql_articles->setFetchMode(PDO::FETCH_ASSOC);




while( $articles = $sql_articles->fetch() ) {

	echo $articles['titre'].'<br />';	

	echo $articles['texte'].'<br />';
	
}
Ce qui m'affiche :


Verre à Whisky gravé
Texte ligne 1
Verre à Whisky gravé
Texte ligne 2
Verre à Whisky gravé
Texte ligne 3


Hors je souhaiterais que cela affiche :


Verre à Whisky gravé
Texte ligne 1
Texte ligne 2
Texte ligne 3


Est-ce possible avec une jointure svp ?