Afficher un texte différent selon un id

Mammouth du PHP | 643 Messages

11 juin 2016, 12:40

Salut à tous.
Je fait une requete qui permet de recupérer chaque catégorie de ma table pas de problème.
Maintenant j'aimerais afficher un texte différent selon la catégorie
exemple:
Si id_type_loisirs = 4 alors on affiche "c'est une chaise"
Si id_type_loisirs = 5 alors on affiche "c'est un tabouret"
Si id_type_loisirs = 6 alors on affiche "....."

J'ai donc fait ceci mais je bloque un peu pour affiche le texte selon la catégorie, merci à vous
// On affiche les dernieres sorties concert enregistrées de la ville renseignée
		$exemple_loisirs = ("SELECT * FROM `loisirs` WHERE id_region = '".$region_id."' GROUP BY `loisirs`.`id_type_loisirs` LIMIT 0,5");
		$req = $bdd->query($exemple_loisirs);	
		while($sortie = $req->fetch(PDO::FETCH_ASSOC)){  
		// Formatage des date en fr
		$dated = DateTime::createFromFormat('Y-m-d H:i:s', $sortie['date_debut_sortie']);
		$date_loisir = $ligne['date_debut_sortie'] = ucfirst($jour[$dated->format('N')]).' '.$dated->format('d').' '.ucfirst($mois[$dated->format('n')]).' '.$dated->format('Y');
		
		if ($ligne['id_type_loisirs'] = 10 ) {
		$result_loisirs .=  '<em>'.ucfirst (strtolower($sortie['titre'])).' à la salle  ('.ucfirst (strtolower($sortie['manufacturer'])).'), le '.$date_loisir.'</em>. ';
		}
		elseif ($ligne['id_type_loisirs'] = 4 ) {
		$result_loisirs .=  'vide-grenier en test';
		}
	}

echo $result_loisirs.' ;

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

12 juin 2016, 22:26

Salut

Tu as ce qu'il faut avec le elseif avec une alternative par categorie

Une meilleure solutiin serait surement davoir ca en base de données dans la table des types loisirs.
Une colonne de plus dans la table et une jointure dans la requete sql pour que ca fonctionne.

Dans le meme genre tu peux mettre le changement de format de la date dans le select c'est plus simple et plus performant.
En meme temps ca permet dajouter les noms de colonne c'est plus lisible :) (surtout quand tu partages le code comme ici).

Le group by est inutile sans fonction de groupe (genre count). Pour ordonner utilise order by .

@+
Il en faut peu pour être heureux ......

Mammouth du PHP | 1967 Messages

13 juin 2016, 10:06

un double égal == dans tes conditions devrait améliorer le fonctionement.

Avec un seul égal, il s'agit d'uen affectation qui renvoie TRUE si elle est faite
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube