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] Création d'un tableau [Débutant(e)]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut [SQL] Création d'un tableau
    bonjour

    voila

    j'ai deux tables, document qui contient la liste des documents et la table chapitre

    je recupere dans une permiere requete tous les documents

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $query= select * from document D
                left join chapitre C on C.id= D.id_chapitre
    ensuite dans une deuxieme requete je recupere la liste de tous les chapitres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $query= select id, label
                from chapitre
    comment je peux faire maintenant pour creer un tableau qui contient pour chaque chapitre le tableau des documents qui lui sont rattachés?

    merci d'avance

  2. #2
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    Je dirais quelque chose du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $req_c = 'Ta requete qui récupère tous les chapitres';
    $res_c = mysql_query($req_c);
     
    while($enr_c = mysql_fetch_assoc($res_c)) {
     
      $req_d = 'Ta requete qui récupère les doc du chap courant';
      $res_d = mysql_query($req_d);
      echo '<table>';
      while($enr_d = mysql_fetch_assoc($res_d)) {
        echo '<tr><td>...</td></tr>';
      }
      echo '</table>';
    }

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    merci d'avoir pris le temps de repondre huntress!

    mais c'estr de ma faute , je me suis mal exprimée

    en fait avec mes deux requetes j'aimerai bien construire un tableau avec array, qui pour chaque chapitre met la liste des documents et je crois qu'il faut ultiser un array_push mais je ne sais pas comment tuilsier tout ca

    merci d'avance

  4. #4
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    C'est pas grave.

    Donc si on traduit mot pour mot ce que tu veux, çà ressemble à un tableau à 2 dimensions...
    Si tu reprends mon code tu devrais pouvoir y arriver aussi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $req_c = 'Ta requete qui récupère tous les chapitres';
    $res_c = mysql_query($req_c);
    while($enr_c = mysql_fetch_assoc($res_c)) {
      $req_d = 'Ta requete qui récupère les doc du chap courant';
      $res_d = mysql_query($req_d);
      while($enr_d = mysql_fetch_assoc($res_d)) {
        $tab[enr_c['id']][] = enr_d['id'];
      }
    }
    J'espère que je me suis pas vautrée, j'suis super dans le pâtée.


    Edit : Je crois pas m'être vautrée mais je pense pas avoir totalement répondu à ta question... je te laisse regarder çà... mais je pense que tu préfèrerais un truc du genre $tab[1] = '1, 2, 4, 9'; Me trompe-je ?

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    non c'est comme vous avez ecrit avant ,

    par exemple si j'ai dans ma liste des chapitres les chapitres 2, 4, 5 , 7

    j'aimerai bien avoir comme tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    array (
     
    [2] => array ([0] => doc12, [1] => doc24 ),
    [4] => array ([0] => doc1, [1] => doc2, [2]=> doc37),
    [5] => array ([0] => doc17),
    [7] => array ([0] => doc15, [1] => doc2, [2]=> doc33)
     
    );
    un tableau dans ce genre, et en plus j'ai l'impression que je dois faire ca dans la boucle while qui recupere les documents et je dois utiliser un array_push


    le truc c'est que j'arrive pas a traduire en code ce que j'ai dans la tete

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array_push($tableau, $element)
    est équivalent à cf code de Huntress

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    ah merci! oui je savais pas ca

    mais le truc c'est que je ne peux pas faire les requetes imbriquees

    j'ai sur une page ma requete de selection des chapitres que j'ai appelle en fait les standards
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    $query2 ="SELECT id, label FROM standard_bloc"; // Récuperation des chapitres
    $result2 = db_send_query("erreur recuperation standards", $query2);
    while ($row = db_fetch_array($result2))
    	$standard_name_tab[$row["id"]]=$row["label"];
    sur la meme page j'effecute une requete un peu compliquee avec pleins de tests mais qui peut se resumer a

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $query= select * from document
                left join standard_bloc on document.id_standard= standard_bloc.id
    le truc c'est que il y plein d'autres conditions et le $resultat de la deuxieme requete peut prendre differentes valeurs


    sur une autre page , je commence comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    while ($row = db_fetch_array($resultat))
    	{
    et la si j'adapte le code a ce que vous m'avez dit , ca ne parche aps , ca me renvoie un talbeau simple avec juste les chapitres

  8. #8
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    J'ai pas tout compris ton problème. Tu parles de pages différentes, de requete imbriquées (alors qu'on ne t'en propose pas), bref... ce n'est pas trop clair

    Si on adapte le code proposé par Huntress, que donne ceci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $req_c = 'SELECT id, label FROM standard_bloc';
    $res_c = db_send_query($req_c);
    while($enr_c = mysql_fetch_assoc($res_c)) {
      $req_d = 'SELECT * FROM document WHERE document.id_standard = '. $enr_c['id'];
      $res_d = mysql_query($req_d);
      while($enr_d = mysql_fetch_assoc($res_d)) {
        $tab[$enr_c['id']][] = $enr_d['id'];
      }
    }
    //test
    var_dump($tab);

  9. #9
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    ben moi non plus je ne comprends pas comment expliquer mais svp , soyez patient la je pense que j'arriverai a vous expliquer cette fois ci

    en fait ce que je fais vraiment

    d'abord j'ecris une requete permettant de me retourner tous les documents que j'ai dans ma base avec toutes leurs proprietes et dans ma table document j'ai une colonne numero de chapitre qui permet de me donner le chapitre sur lequel s'appuie le document



    ensuite, j'ecris une requete recuperant tous les chapitres

    dans une autre page je veux creer ce fameux tableau

    et donc j'ecirs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    while ($row = db_fetch_array($resultat))
    	{
    avec $row['NUM_DOC'] je peux recuperer le numero de chaque document

    et avec $row['numero chapitre'] je recupere le chapitre associé au document

    svp dites moi franchement est ce que c'est plus clair? oubliez tout ce que j'ai dit dans les precendents posts

  10. #10
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Je me disais bien qu'un documents possede plusieurs chapitres plutot que l'inverse
    Sinon qu'entends-tu par "page" ?

  11. #11
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    non c'est bien chaque chapitre qui contient plusieurs documents vu quz dans ma table document j'ai la colonne numero chapitre et chaque document ne contient que un seul ou pas de chapitre


    en fait tout ca , ca se passe pour un formulaire de recherche de document dans lequel je peux effectuer une recherche par chapitre avec les documents renvoyes qui seront classées par chapitre


    la page dans laquelle j'ecris les requetes est la page qui s'execute lorsque je valide ma recherche en appyer sur "rechercher"

    et l'autre endroit ou je veux utiliser la boucle while, c'est pour l'affichage , mais ce tableau j'en ai besoin pour savoir pour chaque chapitre quels sont les documents qui appartienent a ce chapitre

  12. #12
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    a page dans laquelle j'ecris les requetes est la page qui s'execute lorsque je valide ma recherche en appyer sur "rechercher"
    et l'autre endroit ou je veux utiliser la boucle while, c'est pour l'affichage ,
    Ce n'est pas la meme page ?

  13. #13
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    J'ai suivi la conversation... le tube d'aspirine y est passé

    Grosso modo tu as un formulaire de recherche et un résultat...

    QUESTION : A quoi ressemble ton formulaire ?

  14. #14
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    comment vous exprimer mon sentiement a ce moment meme , moment ou je suis bloquee sur quelque chose et j'ai envi de pleurer mais l'histoire de l'aspirine, je n'ai jamais ri autant sur un forum d'info , je dirai meme je n'ai jamais ri sur un forum d'info


    pour le formulaire, ben c'est un formulaire classique dans lequel j'entre le titre du document cherché, je peux meme chosir parmi une liste deroulante de chapitres pour effectuer la recherche dans un chapitre precis


    mais je ne comprends pas trop en quoi ca pourra nous aider


    pour la construction de mon tableau a deux dimensions j'ai ecris ca mais ca me renvoie n'emporte quoi


    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
     
     
    if ($_POST['orderby']==2) { // Triés par chapitre
     
    	$standard= array();
    	$tab=array();
    	$i=0;
    	while ($row = db_fetch_array($resultat))
    	{					
                     $standard[$row['id_standard']]= array_push($tab[$i], $row['NUM_DOC']);
    	    $i++;	
     
    	}
    var_dump($standard);	
    }
    je cherche une instruction danc ce type la meme si je sais que ce code ci est totalement fauxxxx

  15. #15
    Membre éclairé Avatar de J0r_x
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2006
    Messages
    804
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2006
    Messages : 804
    Par défaut
    Ca ne serait pas plus facile de faire une seul requete au niveau de sql plutot que 2 imbriquées ?

  16. #16
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    STOPPPP!! arret des neurones

    desole, huntress vous aviez raison des le debut j'ai honte de vous avoir fait tous perdre du temps alors que huntress avait tout dit avant


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    if ($_POST['orderby']==2) { // Triés par chapitre
     
    	$standard= array();
     
    	$i=0;
    	while ($row = db_fetch_array($resultat))
    	{		
    			$standard[$row['id_standard']][$i]= $row['NUM_DOC'];
    			$i++;
    		}
    			var_dump($standard);	
    	}

    ca ca marche!!!!!!!!!!!!

    merci a tous , desole pour les explications bizarres causant les maux de tete

    j'essaierai de me rattraper

  17. #17
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    J'essaye juste de savoir ce que tu as pour savoir où tu vas... mais en lisant ton code... j'comprends rien .

    Hmmm... j'sais pas trop quoi faire là... ce que je fais généralement c'est que je "calcule" sur papier ce que je devrais obtenir, ensuite je ponds un code qui contient un affichage pas à pas, genre chaque tour de boucle j'affiche un max d'info. Et ensuite j'analyse la séquence et là je trouve où çà va pas... vois-tu ?

  18. #18
    Membre éclairé Avatar de Huntress
    Femme Profil pro
    Inscrit en
    Août 2004
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 475
    Par défaut
    AaAhaaah merde je me suis torturée une fois de trop, rhhhaaaa c'est balo çà.

  19. #19
    Membre confirmé
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Par défaut
    ^^qu'est ce que je peux faire pour me faire pardonner

    en fait vous posez la une question tres importante de la programmation , moi je ne suis qu'une debutante qui a du , a cause de son destion se mettre en seulement quelques mois a faire de l'info en etudiant pleins de langages

    le probleme c'est que je n'ai pas eu le temps d'acquerir les bases des bases , oui j'ai fait de l'agorithmique, un petit peu, vraiment peu et je n'ai jamais vraiment appris a ecrire un bon programme avec des regles pour avoir un code bien et plusacile a deboguer

    ce forum m'a beaucoup aidé , mais je n'ai pas le temps de lire des livres bien expliqués, mais je crois que je devrai m'organiser mieux

    vous voyez meme moi je ne savais pas trop ou j'allais alors des fois ca marche et des fois ca marche pas

    mais en regardant les autres ici , ca me permet d voir comment les autres raisonnent et ca m'aide pour mes propres raisonnements

    en plus faut etre fort pour lire et comprendre le code de quelqu'un d'autre

  20. #20
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Citation Envoyé par eclipse012
    je n'ai jamais ri autant sur un forum d'info , je dirai meme je n'ai jamais ri sur un forum d'info
    C'est que tu ne vas pas sur les bons forums.
    Citation Envoyé par [url=http://club.developpez.com/regles/#L1]Le premier chapitre des règles de ce forum[/url]
    Nous n'avons rien contre l'humour sympathique [...]

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. SQL : Création d'un tableau croisé dynamique
    Par chaporon dans le forum SQL
    Réponses: 11
    Dernier message: 17/05/2017, 21h25
  2. Création d'un tableau en SQL
    Par Nikimizi dans le forum Langage SQL
    Réponses: 4
    Dernier message: 08/04/2015, 11h41
  3. [Tableaux] création d'un tableau arborescant
    Par peppena dans le forum Langage
    Réponses: 23
    Dernier message: 30/01/2006, 14h13
  4. Création dynamique de tableau.
    Par Yux dans le forum C
    Réponses: 6
    Dernier message: 05/11/2005, 16h24
  5. Création d'un tableau composé de TComboBox
    Par gilles641 dans le forum Langage
    Réponses: 1
    Dernier message: 26/07/2005, 10h30

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