Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[debutant]remplacer caractere ds texte ds b. sql

7 réponses
Avatar
Theo
Bonjour !
Voila, je suis en train de faire une base donnée sur des albums, donc je
dois mettre dans un champ les chansons qui le composent.
Le problème c'est que je suis obligé de les afficher à la suite.
je ne veux pas utiliser <br>dans le texte pcq il y a vraiment bc
d'albums.Donc ce que je me suis dit, je sépare chaque chanson par un
point virgule, et lorsque je choppe l'info sur una page, je dit de
remplacer ; par <br> le probleme c'est que je ne sais pas comment faire...
J'ai essayer avec str_replace mais ça n'a pas marché je ne sais pas trop
m'en servir et je ne sais pas si c'est avec ca qu'il faut faire.
J'aimerais aussi afficher les numéros de chansons avant chacune d'elle
mais la, je vois vraiment pas comment faire.
Quelqu'un pourrait m'aider ?
Merci beaucoup :-)

7 réponses

Avatar
CrazyCat
soit $chanson ta liste et ";;" ton séparateur
<? echo ereg_replace(";;", "<br>", $chanson); ?>
--
CrazyCat from C-P-F.org
Avatar
Thibaut Allender
Theo wrote:
Donc ce que je me suis dit, je sépare chaque chanson par un
point virgule, et lorsque je choppe l'info sur una page, je dit de
remplacer ; par <br> le probleme c'est que je ne sais pas comment faire...
J'ai essayer avec str_replace mais ça n'a pas marché je ne sais pas trop
m'en servir et je ne sais pas si c'est avec ca qu'il faut faire.
J'aimerais aussi afficher les numéros de chansons avant chacune d'elle
mais la, je vois vraiment pas comment faire.
Quelqu'un pourrait m'aider ?


euh... je ne vois pas ou les difficulté ?

<?php
$chansons = "chanson toto;chanson tata;chanson titi";
print str_replace(";","<br>",$chansons);
?>

mais quitte a utiliser une base, autant bien faire les choses :

table albums :

id | artiste | titre

table chansons :

id_album | num_piste | artiste | titre

une fois que tu connais l'id de l'album a traiter, tu peux sortir les
chansons qui sont alors chacune un enregistrement dans la table
chansons, identifiee par l'id de l'album dans la table albums


tu n'as alors aucun difficulté a sortir les chansons une a une, a les
numeroter, et tu peux meme encoder des compilations, car l'artiste sera
different pour chaque

ca permet aussi de plus facilement faire des recherches

a+

--
freelance + web design + php dev + digital photo
+ http://www.capsule.org

Avatar
Jedi121
"Theo" a écrit le 06/11/2003 :
Bonjour !
Voila, je suis en train de faire une base donnée sur des albums, donc je dois
mettre dans un champ les chansons qui le composent.
Le problème c'est que je suis obligé de les afficher à la suite.
je ne veux pas utiliser <br>dans le texte pcq il y a vraiment bc
d'albums.Donc ce que je me suis dit, je sépare chaque chanson par un point
virgule, et lorsque je choppe l'info sur una page, je dit de remplacer ; par
<br> le probleme c'est que je ne sais pas comment faire...
J'ai essayer avec str_replace mais ça n'a pas marché je ne sais pas trop m'en
servir et je ne sais pas si c'est avec ca qu'il faut faire.
J'aimerais aussi afficher les numéros de chansons avant chacune d'elle mais
la, je vois vraiment pas comment faire.
Quelqu'un pourrait m'aider ?
Merci beaucoup :-)


Multipost répondu sur alt.fr.comp.lang.php :
news:

Avatar
gmi2a
X-No-Archive: yes
Restrict: no-external-archive
"Theo" a écrit dans le message de
news:3faab690$0$27573$
d'albums.Donc ce que je me suis dit, je sépare chaque chanson par un
point virgule, et lorsque je choppe l'info sur una page, je dit de
remplacer ; par <br> le probleme c'est que je ne sais pas comment faire...


Bonsoir,

Est-ce ceci ?

$variable_modifiée=str_replace(";","<br>",$chaine_a_modifier);

Cordialement
--
G.M.

Avatar
Jeremie Bouillon
De Theo , in
<3faab690$0$27573$:

J'aimerais aussi afficher les numéros de chansons avant chacune d'elle
mais la, je vois vraiment pas comment faire.


Tout dépend de la construction de ta table. Je suppose que tu as une table
"album" avec le titre de l'album", et une table "pistes" avec le titre des
pistes et leur numéro ?

Dans ce cas, pour afficher un album par page, tu fais une première requête
SELECT qui te donne le titre de l'album, puis une seconde requête SELECT
qui te donne le titre des pistes et leur numéro. Tu places tout cela dans
des variables, puis tu affiches tes variables.

Exemple:
<?php
// $disque = numéro id de l'album que tu veux afficher
$r = mysql_query("SELECT album.titre,album.auteur FROM album WHERE
album.id=$disque");
$album = mysql_fetch_array($r)

$r = mysql_query("SELECT piste.titre,piste.numero FROM piste WHERE
piste.album=$disque ORDER BY piste.numero")
$tmp = '';
while ($piste=mysql_fetch_array($r))
{
$tmp .= $piste['numero'].': '.$piste['titre'].' , ';
}
mysql_free_result($r);
mysql_close($r);

echo "L'album ".$disque['titre']." composé par ".$disque['auteur']."
contient les chansons : ".$tmp;
?>

Ce qui va afficher:

L'album Puta's Fever composé par La Mano Negra contient les chansons : 01:
Mano Negra , 02: Rck'n roll band , 03: King Kong Five , 04: Soledad

etc etc

Le code n'est pas parfait, c'est un début de piste :)

--
"Never forget: 2 + 2 = 5 for extremely large values of 2"

Avatar
Michael Padern
Salut, alors lorsque tu récupère tes chansons, tu fais

$tab_chanson=split("ton délimiteur ici ; ,"ton champ")

ensuite tu fais une lecture de chaque cellules de ton tableau,
donc


foreach($tab_chanson as $element)
{

echo $element;
echo "<br>';
}

voilà tu auras tes chansons délimitées par leur point-virgules, et tu les
affiche l'une après l'autre avec un <br> entre chaque titre.

et pour mettre le numéro de chansons, tu fais comme ça :

//définition d'un compteur
$cpt=0;

//tu fais la lecture du tabbleau

foreach($tab_chanson as $element)
{
//incrémentation du cpt
$cpt++;
//affichage du cpt
echo $cpt." - ";
echo $element;
echo "<br>';
}


ce qui te donnera :

1 - chanson1
2 - chanson2
3 - chanson3 etc....etc.. jusqu'à la fin de ton champs chansons.

voilà, j'espère avoir répondu à tes questions.

à plus.
--
Mika
Avatar
Steph. k.
Michael Padern wrote:
[...]

Si c'est pour afficher *une liste* de chanson, il vaut mieux faire :

echo "<ol>";
foreach($tab_chanson as $element)
{

echo "<li>" . $element . "</li>";
}
echo "</ol>";

--
Steph. K.
http://www.acces-pour-tous.net