[RESOLU] Remplacement caractère sql

Remplacement caractère sql [RESOLU] - SQL/NoSQL - Programmation

Marsh Posté le 19-04-2015 à 16:53:47    

Bonjour,
 
Je suis actuellement bloqué sur une requête sql et je n'arrive pas à trouver la solution.
 
J'aimerais pouvoir remplacer une virgule dans mes enregistrements par une autre quand j'inclus ma variable dans ma page.
(je sais pas si je claire alors je vais faire un dessin)
 
Par exemple ma table stockée :
-----------------------------------------
User | Pays | Villes |
-----------------------------------------
xxx | France | Rouen,Rennes, Saint Malo |
-----------------------------------------
xxx | Italie | Rome |
 
etc
 
Dans ma page php j'aimerais que toute les variables qui appartiennent à l'utilisateur xxx apparaissent de cette façon  :
Rouen
Rennes
Saint Malo
Rome
 
Evidemment j'arrive bien à ressortir les infos dans ma boucle mais elles s'apparaissent de cette manière, ce que je ne veux pas :
Rouen,Rennes, Saint Malo
Rome
 
Quelqu'un à t-il une idée ??


Message édité par Ploufys le 20-04-2015 à 12:09:43
Reply

Marsh Posté le 19-04-2015 à 16:53:47   

Reply

Marsh Posté le 19-04-2015 à 22:28:24    

Où est le problème ? si tu disposes d'une variable $ville, il te suffit d'y appliquer un traitement quelconque avec la virgule (,) en séparateur
 
explode

Reply

Marsh Posté le 20-04-2015 à 10:24:52    

Merci pour ta réponse, juste une précision je ne suis pas programmeur à la base, ma question peut donc paraitre stupide.
 
Je n'arrive pas à faire le explode dans ma boucle.
J'arrive bien à ressortir mes données mais je n'arrive pas à l'intégrer.
 
Mon code est comme ça actuellement :
 
<?php
$base = mysql_connect ('localhost', 'root', 'xxx');
mysql_select_db ('members', $base);
$sql = 'SELECT villes FROM voyages WHERE username = "xxx"';
 
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
 
while ($data = mysql_fetch_array($req)){
 // on affiche les résultats
 echo ''.$data['villes'].'<br />';
}
mysql_free_result ($req);
mysql_close();
?>
 
Ce qui fait apparaître :
New York
Tokyo, Osaka
Singapour
Kaboul
Séoul,Tappei
 
Mais je vois pas comment faire pour le transformer pour apparaitre comme je le souhaite :
{ address: 'New York', html: 'New York' },
{ address: 'Tokyo', html: 'Tokyo' },
{ address: 'Osaka', html: 'Osaka' },
{ address: 'Singapour', html: 'Singapour' },
{ address: 'Séoul', html: 'Séoul' },
etc

Reply

Marsh Posté le 20-04-2015 à 11:55:23    

En php, dans ton while, tu fais :
echo str_replace(array(",", ", " ), array("<br />", "<br />" ), $data['villes']).'<br />';
 
Au passage, je trouve fort bizarre comme modélisation d'avoir une relation 1-n stockée dans un seul champ (je parle de la liste de ville associée à un user). Cette façon de stockée n'est vraiment pas pratique pour faire des traitement (la preuve avec ton topic) :/ Normalement, il devrait y avoir 2 tables en plus :
Ville (id_ville, nom_ville)
Villes_users(id_ville_user, id_ville, id_user)
 
Ainsi, si tu aurais une BD qui respecte la forme 3NF. :o


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-04-2015 à 12:08:06    

La solution fonctionne parfaitement merci beaucoup de ton aide :)
 
J'ai fait de cette façon car j'utilise cette liste de ville pour un plugin gmaps.
Après c'est pour un projet perso alors la norme 3NF (je viens de découvrir ce que c'était et son existence ^^)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed