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. 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
  2. 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>';
      	}
  3. 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. 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. ok je vais etudier ceci plus en details demain car la je suis mort

      Merci encore de votre aide

      a bientot
      1. 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. 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. $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

            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. 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.