Array php

Résolu
Bonjour a tous,

Voila je bloque
Je veux interroger ma bAse de donnees pour recuperer des donneEs qui sont de la forme texte1,texte2,texte3.......

Pour la mettre sous la forme
texte1
texte2
texte3
.....

require "connect.php";

$reponse = mysql_query("SELECT * FROM mabase WHERE id ='id'")or die(mysql_error()); // Requête SQL
while ($data = mysql_fetch_array($reponse) )
{

//mise option sous forme option 1 au lieu de option1,ption2

$d = array explode(",", $data['options']);

echo "$d";

}

je bloque je sais comment faire en manuel mais pas en auto

$d = explode("_", $options);

$non=$d[0];
$num=$d[1];
$num2=$d[2];

merci de votre aide

12 réponses

  1. Salut,

    { 
        //mise option sous forme option 1 au lieu de option1,ption2 
    
        $d = array explode(",", $data['options']); 
    
        echo "$d"; 
    
    } 

    Que vient faire « array » à cet endroit ?
    Ta boucle est inutile puisqu'il n'y a qu'une ligne (tu précises un ID).

    $d est donc un array.
    Pour l'exploiter, tu peux utiliser foreach.
    https://www.php.net/manual/fr/control-structures.foreach.php

    Et n'oublie pas d'utiliser <br/> pour faire le retour à la ligne.
    Je ne le vois nul part dans ton code.
    1. merci de ta reponse

      oui le array n etais pas au bon endroit mais j ai voulu essaier

      jusqu a ici c est juste?
      $Explode = explode(",", $data['options']);
      $d = array($Explode);

      ensuite je dois utiliser foreach?

      foreach ($d as &$value) {
      echo "Valeur : $value<br />\n";
      }

      franchement je cale je ne sais plus comment continuer

      merci de ton aide
      1. $Explode est déjà un array, c'est que retourne la fonction explode.
        https://www.php.net/explode
        (si tu as copié le « array » de là, sache que la partie qui précède le nom de la fonction est le type retourné par cette fonction).

        Donc :
        $d = explode(",", $data['options']);
        
        foreach ($d as $value) {
            echo "Valeur : $value<br />\n";
        }
        Le « & » sert à indiquer une référence. Je l'ai retiré car c'est inutile dans ce cas.
        1. merci de ta reponse arthezius

          j ai essaier mais il me donne cet erreur

          Parse error: syntax error, unexpected '&', expecting T_VARIABLE or '$'

          merci de votre aide
          1. Essaye sans le « & »
        2. vous etes des CHEFS

          Merci beaucoup de votre aide

          Ca fonctionne niquel

          Je ne savais pas explode est un array
          Par contre l utilisation du "&" je n est pas trop compris
          1. ok je vais etudier ceci plus en details demain car la je suis mort

            Merci encore de votre aide

            a bientot
            1. Et pour le « & » :
              http://www.journaldunet.com/developpeur/tutoriel/php/040220-php-references.shtml
              Mais si tu n'es pas encore très à l'aise avec le PHP, ce n'est pas très important.
              1. Super intéressant ton lien!

                Autrement dit (et si j'ai bien compris) avec les références, une fonction peut d'une certaine manière nous retourner plusieurs variable et non plus uniquement le résultat d'un return....
              2. Oui, c'est une des utilités des références.
                Lorsque tu passes une variable à une fonction demandant une référence, la variable n'est pas copiée à l'intérieur de la fonction mais c'est directement la variable qui sera utilisée dedans, donc tu peux la modifier, les changements se feront aussi à l'extérieur de la fonction.
            2. non je ne suis pas encore au parfaitement au point mais ton article est interressant je vais essaier avec des exemple

              Merci encore pour votre aide
              1. ah j ai encore une derniere "petite" question sur notre exemple

                $d = explode(",", $data['options']);

                foreach ($d as $value) {
                echo "Valeur : $value<br />\n";
                }

                nous recuperons notre valeur $value sous cette forme
                option 1
                option 2
                ....

                moi j aimerais recuperer sous un variable
                Comme mon exemple
                <tr>
                <td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
                <li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
                </td>
                </tr>

                <tr>
                <td style="text-align: left; border-bottom: solid 1px #303030; background-color: #343434">
                <li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 2</li>
                </td>

                Vous voyez ce que je veux?
                Pas facile a expliquer

                Merci
                1. Pourquoi utiliser un tableau? C'est complètement inutile dans ton cas...

                  Sinon, voici ce qui devrait fonctionner comme tu veux:
                  foreach ($d as $value)
                  	{
                  	echo '<tr>
                  	<td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
                  	<li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">'.$value.'</li>
                  	</td>
                  	</tr>';
                  	}
              2. si je l affiche dans un tableau c est des liens de photos que je recupere

                une dernieres question sur les aray

                je veux recuperer les uniquement les 5 premiers resultats je fait donc comme cela

                $d = explode(",", $data['photos']);

                $a=$d[0];
                $b=$d[1];
                $c=$d[2];
                $d=$d[3];
                $e=$d[4];
                $f=$d[5];

                j ai uniquepment les 4 premiers images qui s affiche pas les 2 suivantes prq?

                il y a un double point qui s affiche ":"

                Merci de ton aide
                1. si je l affiche dans un tableau c est des liens de photos que je recupere 

                  <tr>
                  <td style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
                  <li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
                  </td>
                  </tr> 

                  Tu affiches une cellule par ligne.
                  Tu aurai très bien pu simplifier en:
                  <p style="text-align: left; border-bottom: solid 1px #303030; background-color: #474747">
                  <li style="list-style: square; margin: 0px; padding: 0px; margin-left: 20px">option 1</li>
                  </p>

                  Ainsi tu n'avais pas besoin d'utiliser de tableau.

                  j ai uniquepment les 4 premiers images qui s affiche pas les 2 suivantes prq? 

                  Fait un echo sur la variable $data['photos'] et affiche ici le résultat.
                  echo $data['photos'];
                2. merci de ta reponse

                  oui je peux simplifier c est vrai je vais faire ca par apres

                  si je fait un "echo $data['photos'];" tous s affiche
                3. j ai trouvé l 'ereur j avais 2 fois $d

                  $d = explode(",", $data['photos']);

                  $a=$d[0];
                  $b=$d[1];
                  $c=$d[2];
                  $d=$d[3];
                  $e=$d[4];
                  $f=$d[5];

                  Merci de ton aide
                4. Ah oui effectivement, j'avais pas vu ça.
                  Ta variable $d était donc réécrite.
                5. oui c etais pour ca maintenat ca marche niquel

                  Merci