[PHP] Transformer requete mysql en tableau

Bonjour,
J'ai un soucis et je voudrais transformer une requete mySQL en tableau:
$select = "SELECT * FROM loisirs";
$result = mysql_query($select);

Comment obtenir de $result un tableau?
Il existe la fonction mysql_fetch_array($result), mais elle ne retourne qu'une ligne!
Comment puis je faire??

Merci
Configuration: Mac OS X
Firefox 3.5.5

11 réponses

  1. Je pense qu'il y a une confusion sur le nombre de dimension du tableau dès le départ.

    Je crois qu'un array issu de fetcharray éclate les données d'UNE SEULE ligne sur un tableau d'une dimension :
    Ligne[champ1], Ligne[champ2], Ligne[champ3].

    En revanche, le demande était peut-être de monter un tableau à 2 dimensions type :
    Ligne[0,champ1], Ligne[0,champ2], Ligne[0,champ3]
    Ligne[1,champ1], Ligne[1,champ2], Ligne[1,champ3]
    Ligne[3,champ1], Ligne[3,champ2], Ligne[3,champ3]

    Je sais pas si c'est possible...
    1
    1. mysql_fetch_array retourne déjà le résultat sous forme de tableau.

      Je comprends pas vraiment la question ..
      0
      1. Est ce le tableau général de la requete? ou simplement le tableau contenant la 1ere ligne?
        0
    2. C'est un tableau général.

      Regarde ce que tu retournes le code suivant :

      <pre>
      <?php echo mysql_fetch_array($result) ?>
      </pre>
      0
      1. Ca ne m'affiche que "array"???
        0
    3. Tu souhaites afficher le tableau des données de manière brute ou dans un tableau HTML ?
      0
      1. Je souhaite qu'il soit sous forme html mais je ne veux pas utiliser:
        while ($row = mysql_fetch_array($result))
        Je souhaite remplacer $row = mysql_fetch_array($result) que par une variable qui soit un tableau.
        0
    4. J'ai du mal à comprendre la finalité.

      Tu veux en faire quoi exactement de cette variable finale qui ne contient qu'un tableau HTML avec tes données ?
      0
      1. Je souhaite avoir les données du résultat de la requete dans un unique tableau (une variable), et ce tableau sera traité dans un while pour afficher les données dans un <table>.
        Est ce que j'ai été assez clair?
        0
    5. Quand je parlais d'un tableau HTML, je parlais d'un <table></table>.

      Pourquoi ne pas afficher directement les données dans un <table></table> alimenté par un while ?

      Tu feras une seule boucle au lieu de deux pour afficher tes données. (Etant donné que tu dois quand même faire un while si tu veux contenir le résultat de mysql_fetch_array pour les mettre dans un array).
      0
      1. Donc je suis obliger d'effectuer un premier traitement while pour tout mettre dans un tableau et un deuxieme while pour retraiter ce tableau sur demande d'un prof pour un projet!!
        Comment puis je faire mon premier while pour avoir toutes les données dans un array?
        0
    6. $tablo
      $index = 0;

      while ($row = mysql_fetch_array($result)) {
      $tablo[$index] = $row;
      $index += 1;
      }

      //et apres tu manipule ton $tablo

      Note bien : la fonction mysql_fetch_array($result) fonctionne comme un curseur qui renvoit la prochaine ligne uniquement de ton resultat mysql sous forme d'un tableau.

      par exemple si tu as

      1---toto----rue de la paix
      2---tata----rue de la guerre
      3---titi-----rue de la boule

      le 1er appel à mysql_fetch_array($result) te renverra un tableau de taille 3 comme ceci
      {1;toto;rue de la paix} par exemple $row[1] = toto

      c'est pourquoi tu es obligé de passer par un while pour récuperer toutes les lignes.

      en regle général le manuel php.net est trés bien fait : et il y a des exemples !!!!

      https://www.php.net/manual/fr/function.mysql-fetch-array.php
      0
      1. OK. Merci beaucoup pour ton aide!!!
        0
    7. Je suis bête ...

      Plutot que de faire
      <?php echo "<pre>";
      echo mysql_fetch_array($result);
      echo "</pre>";
      ?>
      


      Essaie avec

      <php echo "<pre>";
      print_r(mysql_fetch_array($result));
      echo "</pre>";
      ?>
      


      Et dis moi si le tableau s'affiche mieux stp. (Ca sera un tableau brut)
      0
      1. Voila le resultat de ta requete, mais je pense que je vais suivre l'idée thomas.

        Array
        (
        [0] => 1
        [NumL] => 1
        [1] => Ville
        [Lieu] => Ville
        [2] => Danse
        [Act] => Danse
        [3] => Soir
        [Hor] => Soir
        )
        0
        1. Hum, l'idée est la même, mais bon : )
          0
          1. remarque au passage,

            Array
            (
            [0] => 1
            [NumL] => 1
            [1] => Ville
            [Lieu] => Ville
            [2] => Danse
            [Act] => Danse
            [3] => Soir
            [Hor] => Soir
            )

            comme tu peux le voir ici, tu as une ligne de ton résultat (1, ville, danse, soir)

            ils ont pensé à tout chez php et mysql puisque chaque case du tableau est accessible soit en utilisant un index soit en utilisant le nom de la colonne.

            par exemple, ici, si tu fais $tonarray[1] ca renverra la même chose que $tonarray["Lieu"], c'est à dire "Ville".

            a+
            0