Version complète: sur le forum Webmaster Hub : requete SQL avec fonction PHP
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
c.klouchi
Bonjour dans un champs, j'ai des donnés insérées comme ceci
CODE
05, 10, 12, 15, 19, 23, 27, 28, 29


J'aurais besoin pour chaque id de récupérer ces données à la suite des autres pour arriver à faire quelque chose comme cela :
image05.jpg
image10.jp
image12.jpg

Avez vous une solution ?
Merci chris
Dan
CODE
$picts=explode(", ",$contenu_du_champs);
foreach ($picts as $pict) {
   print "image".$pict.".jpg<br>";
}


wink.gif Dan
c.klouchi
Merci bien même si j'ai guère avancé
Faut il lire xplode ou explode car sur php.net je vois explode mais peut-être est ce différent ?
Dans les 2 cas j'obtiens :
Warning: Invalid argument supplied for foreach()

Enfin je persévère et me documente smile.gif
Antoine Cailliau
Montre nous ton code complet. Si tu n'as pas un tableau pour la variable sur laquelle tu boulce (ou tout du moins une structure munie d'un itérateur) c'est normal comme erreur.

Peux-tu nous montrer ton code ?
Dan
C'était explode bien sûr. Désolé pour la typo smile.gif
Il faut que la variable $contenu_du_champ contienne effectivement le champ avec tes valeurs "05, 10, 12, 15, 19, 23, 27, 28, 29".

Si tu lances:
CODE
<?php
$picts=explode(", ","05, 10, 12, 15, 19, 23, 27, 28, 29");
foreach ($picts as $pict) {
  print "image".$pict.".jpg<br>";
}
?>

Cela te donne bien la liste des images...

Dan
c.klouchi
Merci Dan de ta rapidité, comme d'hab je m'exprime toujours mal en programmation mais comme à chaque fois on me met sur la voie, j'apprend un peu chaque jour !

J'ai donc fait ceci et ça fonctionne parfaitement donc merci des conseils.

CODE
// echo ''.$data['thumbs_promo'].'<br />';

$vignette  = $data['thumbs_promo'];
$pieces = explode(", ", $vignette);

echo $pieces[1];
echo $pieces[2];
echo $pieces[3];
echo $pieces[4];
echo $pieces[5];
echo $pieces[5];
echo $pieces[7];
echo $pieces[8];
Dan
Comme $pieces est un tableau, tu peux utiliser ce code si tu ne connais pas le nombre d'éléments...

CODE
foreach ($pieces as $singlepiece) {
   print $singlepiece."<br>";
}

Il remplace avantageusement toute ta série de "echo $pieces[]..."

Dan
kazhar
il est inutile de placer $data['thumbs_promo'] dans $vignette
tu peut faire l'explode directement avec la variable d'origine (ca évite de placer du contenu supplémentaire en ram)

CODE
$pieces = explode(", ", $data['thumbs_promo']);
Antoine Cailliau
Pour faire vraiment optimisé, on fera alors :
CODE
foreach (explode(", ", $data['thumbs_promo']) as $singlepiece) {
  print $singlepiece."<br />";
}
c.klouchi
A mon petit niveau, je vois pas trop ce que ça change car moi je suis déjà trés content lorsque j'arrive à obtenir le résultat escompté, mais comme il y a moins de code, j'ai adopté et ça fonctionne trés bien.

Merci à vous.
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.