Array php

Résolu
audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   -  
audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   -
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. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
  2. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
  3. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    $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
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
    1. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      Essaye sans le « & »
      0
  6. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
  7. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    ok je vais etudier ceci plus en details demain car la je suis mort

    Merci encore de votre aide

    a bientot
    1
  8. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
     
    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
    1. arthezius Messages postés 3756 Statut Membre 475
       
      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....
      0
    2. avion-f16 Messages postés 19182 Date d'inscription   Statut Contributeur Dernière intervention   4 511
       
      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.
      0
  9. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
  10. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
    1. arthezius Messages postés 3756 Statut Membre 475
       
      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>';
      	}
      0
  11. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
     
    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
    0
    1. arthezius Messages postés 3756 Statut Membre 475
       
      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'];
      0
    2. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
       
      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
      0
    3. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
       
      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
      0
    4. arthezius Messages postés 3756 Statut Membre 475
       
      Ah oui effectivement, j'avais pas vu ça.
      Ta variable $d était donc réécrite.
      0
    5. audi68 Messages postés 567 Date d'inscription   Statut Membre Dernière intervention   9
       
      oui c etais pour ca maintenat ca marche niquel

      Merci
      0