Affiché une boucle dans une condition

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 : Affiché une boucle dans une condition

Re: Affiché une boucle dans une condition

par moogli » 26 avr. 2017, 10:40

salut,

plutôt que de gérer un booléen pour le premier ou la suite utilise un entier.
<?php
    $i = 0;
    while($ligne = $req->fetch(PDO::FETCH_ASSOC)){
      if($i==1){
      echo ' ou peut-être ';
      }
      else if($i > 1){
      echo ' mais encore';
      }
      echo $ligne['titre'].' ('.$ligne['manufacturer'].')';
      $i++;
    }
tu va pouvoir affiner plus si tu le souhaites.
Attention j'ai repris ton code c'est pour cela que je test et plus. ton code n'affiche que les données pour la première ligen (ce qui semble logique vu le résultat souhaité).

au final
toto (....) ou peut être tata ( ...) mais encore titi (...) mais encore tati (...) ....

@+

Re: Affiché une boucle dans une condition

par blinz » 25 avr. 2017, 21:53

Alors j'ai réussi à faire ce que je souhaitais cependant juste un soucis:
// On affiche un texte par defaut selon la ville renseignée
	elseif (!empty($_GET['ville']) && !in_array(ucfirst(strtolower($_GET['ville'])), $villes) && empty($_GET['loisir']) && empty($_GET['departement']) && empty($_GET['page'])) {
		
	echo '
	<div class="dummy">
		<div class="container">
			<p>bla bla texte ...';
		
		// Nom de salle + artiste et ville
		$spectacle = ("SELECT titre,manufacturer FROM loisirs  WHERE city = '".$_GET['ville']."' LIMIT 3");
		$req = $bdd->query($spectacle);
		$premier = true;
		while($ligne = $req->fetch(PDO::FETCH_ASSOC)){
			if($premier){
			$premier = false;
			}
			else{
			echo ' ou peut-être ';
			}
			echo $ligne['titre'].' ('.$ligne['manufacturer'].')';
		}
		
		echo'
		bla bla texte</p>
		</div>
</div>';	
	}
Tout marche bien, cependant je sépare actuellement dans ma boucle par ou peut-être, mais j'aimerais que la premiere fois ca soit ou peut être que le deuxième mais encore et le troisième : mais encore .

Merci à vous encore ;)

Re: Affiché une boucle dans une condition

par or 1 » 25 avr. 2017, 19:04

le code ne prendra en compte que le dernier des 3 enregistrements. si le dernier a un champ manufacturer vide alors c'est normal que cela n'affiche rien.

il faut concaténer avec .= pour avoir 3 valeurs en sortie de boucle.

Affiché une boucle dans une condition

par blinz » 25 avr. 2017, 18:14

Salut tout le monde.

Voilà j'ai une concition qui est bien rempli et je suis sur que j'ai des entrées pour la ville de renseingée mais rien de s'affiche :
// On affiche un texte par defaut selon la ville renseignée
	elseif (!empty($_GET['ville']) && !in_array(ucfirst(strtolower($_GET['ville'])), $villes) && empty($_GET['loisir']) && empty($_GET['departement']) && empty($_GET['page'])) {
		
	// Salle de spectacle, affiché 3 noms de salle différents et unique
	$spectacle = ("SELECT * FROM loisirs WHERE id_type_loisirs = 11 AND city = '".$_GET['ville']."' LIMIT 3");
	$req = $bdd->query($spectacle);
	while($ligne = $req->fetch(PDO::FETCH_ASSOC)){  
	$exemple_salle = ucfirst(strtolower($ligne['manufacturer']));
	$artist = ucfirst(strtolower($ligne['titre']));
	}
	
	
	echo '
	<div class="dummy">
		<div class="container">
			<p>mon texte ..... bla bla puis encore du texte '.$exemple_salle.'<br>
		mon texte ..... bla bla !<br>
		Remplissez .......  '.ucfirst(strtolower($_GET['ville'])).' dès maintenant</p>
		</div></div>';	
	}
Le but étant que '.$exemple_salle.' doit m'afficher une selection de 3 salle au hazard, mais j'ai aboslulement rien qui se passe même pas une erreur ....

Merci pour le coup de pied ;)