Version complète: sur le forum Webmaster Hub : Afficher une ville sans son CEDEX
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
sanddy
Bonjour,

J'ai des villes dans ma base de données qui contiennent leur nom et des fois, il y a " Cédex" ensuite dans le même champ. J'aimerais pouvoir enlever ce Cédex (pas dans la base de données mais dans mon application).
J'ai donc réussi à le faire enlever avec la fonction str_replace mais maintenant, j'ai deux fois la ville qui s'affiche avec mon application et pourtant, j'ai mis "GROUP BY mailingcity"...
Je ne vois pas quoi faire, pouvez-vous m'aider svp ???

Au départ, j'avais :
CODE
while ($donnees7 = mysql_fetch_assoc($resultat)) {

  echo "<a href=\"".$deppage."page_annu2.php?dep=".$dep."&ville=".$donnees7['mailingcity']."\">";  
  echo $donnees7['mailingcity'];
  echo "</a><br />";
  
}


Cela m'affiche toutes les villes avec les cédex...

Pour virer les cédex, j'ai fait :

$mailing_city=str_replace(" CEDEX", "", $donnees7['mailingcity']);

ainsi, les cédex sont partis... mais plusieurs villes reviennent... vu que dans ma base de données, dans le champs mailingcity, j'ai par exemple la ville "challans" et la ville "challans cédex"... en faisant le str_replace, j'ai challans dans une ligne et encore challans dans l'autre...

Puis en faisant :
CODE
while ($donnees7 = mysql_fetch_assoc($resultat)) {
$mailing_city=str_replace(" CEDEX", "", $donnees7['mailingcity']);


if ($mailing_city== $donnees7['mailingcity']) {
  echo "<a href=\"".$deppage."page_annu2.php?dep=".$dep."&ville=".$donnees7['mailingcity']."\">";  
  echo $donnees7['mailingcity'];
  echo "</a><br />";
  }

}


Challans ne s'affiche qu'une fois mais la ville Chatonnay disparait... car dans ma base de données, je n'ai que le champ "Chantonnay Cédex"...
argh...
Keyser
Salut,

as-tu essayé avec la clause DISTINCT, qui permet de supprimer les doublons dans une sélection sql,

ou j'ai peut-être mal compris ton problème (j'avoue ne pas avoir eu le courage de tout lire).
sanddy
Bonjour, j'ai rectifié ma question car le code n'affichait pas ce que je voulais...

Sinon, pour le distinct, je ne l'ai pas utilisé car dans la base de données, les villes affichées ne sont pas les mêmes "Challans" et "Challans Cédex" ne sera pas considéré comme semblable...

Hum, désolé, je l'explique dans le premir sujet... je crois que ça doit pas etre evident a comprendre tongue.gif
Keyser
Bon alors, l'idée, en supposant que les villes soient affichées dans un ordre alphabétique,

il faudrait inclure une variable temporaire permettant de vérifier si il y a 2 fois du suite le même $mailing_city,

si c'est le cas on n'affiche rien et si ce n'est pas le cas on affiche,

ça pourrait donner :

CODE
while ($donnees7 = mysql_fetch_assoc($resultat)) {
$mailing_city=str_replace(" CEDEX", "", $donnees7['mailingcity']);


if ($mailing_city==$donnees7['mailingcity'] AND $mailing_city==$mailing_city_tmp) {

}
elseif ($mailing_city==$donnees7['mailingcity'])
{
echo "<a href=\"".$deppage."page_annu2.php?dep=".$dep."&ville=".$donnees7['mailingcity']."\">";
echo $donnees7['mailingcity'];
echo "</a><br />";

$mailing_city=$mailing_city_tmp;
}
else
$mailing_city=$mailing_city_tmp;

}
captain_torche
Il vaudrait mieux limiter les résultats au niveau de la requête avec le paramètre REPLACE.
Keyser
CITATION(captain_torche @ lundi 17 septembre 2007 à 15:14) *
Il vaudrait mieux limiter les résultats au niveau de la requête avec le paramètre REPLACE.


Ha oui bien vu, effectivement ça serait plus propre comme ça. smartass.gif
sanddy
Merci à vous wink.gif smartass.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.