IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Sortie tableau d'une requête sql


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut [SQL] Sortie tableau d'une requête sql
    Bonsoir,
    j'ai un probleme assez simple, mais la je galere pour faire un pauvre tableau lol
    j'ai essayer plusieurs soluce mais la je seche soit parceque fatigué ou autre mais j'en viens à votre aide,

    donc voila mon probleme, j'ai deux table sql et je souhaite crée un tableau a partir de ces deux la. je m'explique :

    table projet :

    id_projet nom_projet
    1 projet 1
    2 projet 2

    table personne

    id_personne nom_personne
    1 jean
    2 alain


    le resultat doit etre un tableau comme ceci:

    nom projet jean alain

    projet 1 jean alain
    projet 2 jean alain



    merci de votre precieuse aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    vous m'avez donné mal à la tête.

    Je ne comprends rien du tout, vous voulez faire quoi exactement? Une table temporaire, une vraie table digne de ce nom, un tableau php avec le résultat d'une requête?

    Je n'arrive pas à saisir votre problème.

    Il n'y a aucun lien entre les deux tables, comment voulez vous associé le 'projet 1' avec 'jean' ou 'alain' car on ne sait même qu'ils sont reliés à ce projet. Si toutes les personnes sont relié à tous les projets, bof, faites deux requêtes MySQL et un petit script PHP qui va bien.

    Cordialement,
    DaRiaN.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    Bonjour,
    désolé pour le mal de tete mais j'ai du mal depuis hier a bien réfléchir car malade...

    oui il y aucun lien entre les deux table car tous le monde est relié a tous les projets.

    oui j'ai déja fait 2 requete sql une pour afficher les personnes et l'autre les projets. et afficher tout ca avec du php

    maintenant il faut que je le remplisse car je veux que dans chaque celulles, il y ait une variable qui comprenne le prenom et le projet correspondant...

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
      $projets = array(1 => 'Projet 1', 2 => 'Projet 2');
      $personnes = array(1 => 'Alain', 2 => 'Jean');  
     
      settype($auteurs, 'array');
     
      foreach ($personnes as $personne)
       foreach ($projets as $projet)
        $auteurs[$projet] = $personnes;
     
      echo '<pre>';	
      print_r($auteurs);
      echo '</pre>';	
     
    ?>
    Devrait vous renvoyer un tableau comme celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Array
    (
        [Projet 1] => Array
            (
                [1] => Alain
                [2] => Jean
            )
     
        [Projet 2] => Array
            (
                [1] => Alain
                [2] => Jean
            )
     
    )
    C'est ce que vous recherchiez à faire?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    oui merci !

    maintenant il me reste plus qu'a mettre tout ca en forme, pour faire un beau tableau avec php (c pas trop compliqué?)

    je precise que les noms et projets viennent d'une base sql pour que tout se fasse automatiquement

    merci pour votre réponse rapide !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    j'ai beau cherché mais je ne sais pas trop comment faire pour faire la meme chose que vous m'avez montrer mais a partir de requete sql, (mes deux tables, personnel et projets)
    ainsi que de remplir le tableau par ces deux variables ...

    merci

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Désolé, mais je ne sais pas, exactement ce que vous voulez faire et quelles informations vous voulez obtenir, mais cet exemple devrait un peu vous aider (attention, je ne l'ai pas testé, juste codé vite fait sur le forum) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
      $sql = new mysqli('localhost', 'user', 'pass', 'db');
     
      if (mysqli_connect_errno()) exit('Echec :'.mysqli_connect_error());
     
      // ON RECUPERE LA LISTE DES PROJETS
     
      settype($projets, 'array');
     
      $req = 'SELECT id, projet FROM projets ORDER BY projet';
     
      if ($res = $sql->query($req))
       while (list($id, $projet) = $res->fetch_row()) $projets[$id] = $projet;
     
      $res->close();
     
      // ON RECUPERE LA LISTE DES PERSONNES
     
      settype($personnes, 'array');
     
      $req = 'SELECT id, personne FROM personnes ORDER BY personne';
     
      if ($res = $sql->query($req))
       while (list($id, $personne) = $res->fetch_row()) $personnes[$id] = $personne;
     
      $res->close();  
      $sql->close();  
     
      settype($auteurs, 'array');
     
      foreach ($personnes as $personne)
       foreach ($projets as $projet)
        $auteurs[$projet] = $personnes;
     
      echo '<pre>';	
      print_r($auteurs);
      echo '</pre>';
     
    ?>

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    en fait ce que je cherche a faire pour etre plus claire un tableau
    donc avec en haut les noms des personnes et a droite les noms des projets,

    et je veux le remplir avec ces deux information pour ensuite crée une fonction ou un lien pour chaque cellule avec ces 2 variables

    en gros ca devré donné ca à l'affichage(déso pr le tablo pourri) :

    |__ Pierre___Paul__ Jacques
    Projet A | PiA PaA JaA
    Projet B | PiB PaB JaB
    Projet C | PiC PaC JaC

    A la place des piA (Pierre ProjetA) et paA etc... je mettrai un bouton pour faire passer ces variables qui correspondent au nom et projet pour chacun.

  9. #9
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Avec le script ci-dessous, vous obtenez ce genre de tableau :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    <?php
     
      $projets = array('Projet A', 'Projet B', 'Projet C');
      $personnes = array('Pierre', 'Paul', 'Jacques');
     
      echo '<table border="1" cellspacing="0" cellpadding="5">'."\n <tr>\n  <td>&nbsp;</td>\n";
     
      foreach ($personnes as $personne) echo "  <td><b>".$personne."</b></td>\n";
     
      echo " </tr>\n";
     
      foreach ($projets as $prid => $projet)
      {
     
        echo " <tr>\n  <td><b>".$projet."</b></td>\n";
     
        foreach ($personnes as $peid => $personne)
         echo '  <td><a href="page.php?projet='.$prid.'&personne='.$peid.'">'
          .$personne.' '.$projet.'</a></td>'."\n";
     
        echo " <tr>\n";  
     
      }  
     
      echo '</table>';    
     
    ?>
    Voilà, désolé je ne peux pas faire grand chose de plus.

    Cordialement,
    DaRiaN.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut sans mysqli ?
    Donc comme je vous disais,
    ce script précédemment, j'aimerai savoir si il est possible de le faire sans mysqli

    j'ai essayer en remplaçant par du mysql classique directement mais sans succées.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $req = 'SELECT id, projet  FROM projets ORDER BY projet';
    $req1=mysql_query($req );
    $val1=mysql_fetch_array($req1);
      while (list($id, $projet) = $val1) $projets[$id] = $projet;
    le reste du code après les appels a la base sont les mêmes.

    merci

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
     
      settype($projet, 'array');
     
      if
      (
        !mysql_connect('localhost', 'darian', 'mdp') ||  
        !mysql_select_db('base')
      )
      die(mysql_error());
     
      $res = mysql_query('SELECT `id`, `projet` FROM `projets` ORDER BY `projet`') or die(mysql_error());
     
      while (list($id, $projet) = mysql_fetch_row($res)) $projets[$id] = $projet;
     
    ?>

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 17
    Par défaut
    ok ça marche merci
    mais je vois pas la différence avec mon code, a part le mysql_fetch_row ( que j'avais testé aussi) , le fait que j'ai tout séparé peut être ?

    Cordialement,
    Wac06

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Le mysql_fetch_* doit être la condition de la boucle, vous ne croyez pas?

Discussions similaires

  1. affecter une requête SQL à un tableau
    Par gastoncs dans le forum VB.NET
    Réponses: 2
    Dernier message: 22/07/2012, 10h18
  2. Envoyer par GET un tableau d'une requête SQL
    Par xess91 dans le forum Langage
    Réponses: 17
    Dernier message: 21/05/2010, 10h08
  3. Réponses: 5
    Dernier message: 06/10/2009, 09h37
  4. Réponses: 4
    Dernier message: 11/06/2009, 16h03
  5. [Débutant][SQL] Requête SQL à l'intérieur d'une requête SQL
    Par Kily10 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 27/10/2006, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo