Eviter <br /> lors de l'affichage grâce à explode

bobi
Invité n'ayant pas de compte PHPfrance

20 déc. 2006, 12:16

Bonjour à tous !

J'ai dans ma table un champ qui contient les départements. Lors de l'insertion en base avec un formulaire, j'ai séparé chaque département choisi avec un *. Si on choisit paris et seine-et-marne, on aura Paris (75)*Seine-et-Marne (77)*.

Je voudrais maintenant l'afficher sur une page, j'ai donc ce code :
$lieu = explode("*", $row['dpt_souhaite']);
foreach ($lieu as $valeur)
{
     echo $valeur."<br />";
}
Le souci que j'ai, c'est qu'il me met un <br /> en trop à la fin :
Paris (75)
Seine-et-Marne (77)
//br ici en trop
suite...etc

Savez-vous comment je peux afficher exactement mes données sans <br> en trop ?

Merci !

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 12:20

Bonjour,

Si je me souviens bien, $row['dpt_souhaite'], est une valeur issue d'une concaténation dans un de tes posts, non ?

Si c'est le cas, remontre nous la concaténation et c'est là qu'on va corriger le PB, à la source.

C'est mieux que de faire du "bidouillage"
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

20 déc. 2006, 12:24

Oui c'est exact. Voici ma concaténation :
$_SESSION['dpt_souhaite'] = $_POST['dpt_souhaite'];
foreach ($_SESSION['dpt_souhaite'] as $valeur=>$texte)
{ 
     $dpt_souhaite .= $texte."*";
}

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 12:28

Il y a une astuce que j'utilise souvent pour ce genre de concaténation :
$_SESSION['dpt_souhaite'] = $_POST['dpt_souhaite'];
 
//Permet de construire une chaine de caractères contenant chaque case du tableau, séparée par un *, sans ajout à la fin
$dpt_souhaite = implode('*', $texte);
A partir de là, soit tu fait un bête str_replace($spt_souhaite, '*', '<br >');
soit, pour retrouver un tableau, tu peut faire l'inverse, c'est à dire
$dpt_souhaite = explode('*', $texte);
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 12:35

@zeus -> Tu triches :cry:
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

20 déc. 2006, 12:36

Je vois l'astuce :)

J'ai essayé de le remplacer :
$_SESSION['dpt_souhaite'] = $_POST['dpt_souhaite'];
foreach ($_SESSION['dpt_souhaite'] as $valeur=>$texte)
{ 
	//$dpt_souhaite .= $texte."*";
	$dpt_souhaite = implode('*', $texte);
}
et j'ai l'erreur :
Warning: implode() [function.implode]: Bad arguments

J'ai fait une bêtise apparemment lol

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 12:42

Normal, implode() transforme en une seule fois le contenu de ton tableau en une chaine alors que toi, tu l'appliques sur chaque élément de ton tableau ;)

Regarde bien mon code, pas de foreach() ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

20 déc. 2006, 12:43

@zeus -> Tu triches :cry:
Pourquoi donc :?:
On a un tableau en entrée, une chaine bien formatée en sortie ? ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 1961 Messages

20 déc. 2006, 12:46

@zeus -> Tu triches :cry:
Pourquoi donc :?:
On a un tableau en entrée, une chaine bien formatée en sortie ? ;)
Non, tu as pris de la potion :boire9: et moi j'y ai pas droit :non:
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

20 déc. 2006, 12:51

Yes ! J'avais pas tilté à cause du $texte qui était resté dans ton code :)

Merci beaucoup !

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

20 déc. 2006, 12:56

Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton [Mettre Résolu] qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié). ;)
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.