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] Stocker le resultat d'une requette


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut [SQL] Stocker le resultat d'une requette
    Voila j'ai un probleme j'ai des requettes imbriqué mais qui utilise tout ou partie d'un resultat.

    Pour l'instant je reeffectue ma requete à chaque fois ce qui fait que j'en ai plus d'une 20aine ce que es tlargement trop

    Je voudrais stocker le resultats dans un tableau pour le parcourir comment ca se passe car je recupere toute les données de ma table.

    j'aimerais qu'a chaque ligne du tableau numérote de 1 à X corresponde une ligne de la table avec toutes les donnée sytle $tab[$i]['id'],$tab[$i]['membre'] ect....

    Le problème est que je n'y arrive pas quelqu'un pour m'aider.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Alors tout d'abord Bonjour, et j'ai pas compris ce que tu veux faire

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    alors pour parcourir un resultat normalement je fais comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while($sous_categorie = mysql_fetch_array($query))
    	{$tpl->set_var('S_LIEN',$sous_categorie['lien']);}

    Moi ce que je voudrais c'est stocker le resultat entier et le parcourir grace à une boucle for ou je pourrais choisir ou commencer la lecture.

    exemple ma ligne de table
    table : membre
    id,nom,lien

    Grace a une requete je recupere les lignes que je souhaite dans un ordre etablit (ca je sais faire)
    Mais a la place du while je voudrais un for comment faire?

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    A moins que je me trompe (je suis pas très réveillé donc je vais tenter), dans ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sous_categorie = mysql_fetch_array($query)
    tu obtiens déjà un tableau à deux dimensions, il te reste plus qu'à tenter ta boucle for

    msql_fetch_array
    msql_fetch_array() est une version évoluée de msql_fetch_row(). En plus d'enregistrer les données dans un tableau à indice numérique, il enregistre aussi les données dans un tableau associatif, en utilisant les noms des champs comme clés.
    C'est bien ce que tu veux ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    oui mais comment j'appel la ligne X de mon tableau a la case membre pour en retirer la valeur?

    je fais $tab['$x']['membre'] ???

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Comme il est dit c'est comme un tableau associatif donc oui comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $sous_categorie[0]['membre']
    Le 0 c'est une valeur par défaut mais tu peux mettre un $i

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    ouais donc c'est ce que j'ai testé depuis un momment mais ca fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $querylvlbis = mysql_query("SELECT titre,level FROM ".$bdd."_type_membre ORDER BY level")
     OR die('Erreur !<br/>' .mysql_error());
    $lvlbis = mysql_fetch_array($querylvlbis);
     
    $j=0;
    for($j==3;$j < 9; $j++){
    	$tpl->set_var("tv",$lvlbis[$j]['level']);
    	$tpl->set_var("tt",$lvlbis[$j]['titre']);
     
    	$tpl->parse("TEST","test",true);
    }
    et du coup j'ai des erreurs

    Undefined offset: 2 in c:\program files\easyphp1-8\www\friendsnco\module\admin\modifmenu.php on line 170

    Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\friendsnco\module\admin\modifmenu.php on line 171

    Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\friendsnco\module\admin\modifmenu.php on line 170

    Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\friendsnco\module\admin\modifmenu.php on line 171

    etc......
    Donc ca me dit que ca existe pas l'enregistrement mais il existe bien donc je pige pas.

  8. #8
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Tu as testé en affichage juste un champ du tableau ?
    Par exemple $tab[0]['membre'] ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    ca m'affiche 0 ou v ou rien j'ai testé tout les champs

    alors que ca devrais afficher un mot

  10. #10
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Laisses le while pour remplir le tableau avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tu mets dans la boucle  $lvlbis[] = mysql_fetch_row($querylvlbis);
    ou tu fais comme l'exemple ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ($row = mysql_fetch_row($query)) {
           $return[] = $row;
         }

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    Si je laisse le while je reviens a mon probleme de debut qui est que je veux pas parcourir tout l'enregistrement et que je ne peux pas reutiliser le tableau plus loin dans mon code.

    EN fait ma requete SQL me renverra au maximum 11 lignes c'est a dire toute.

    Mais je reutilise plusieurs fois les valeur de certaines des 11lignes qui peuvent etre classé.

    Et pour eviter une requete a chaque fois pour recupérer les lignes que je veux je veux toutes les stocker dans un tableau pour les recupérer quand je veux dans le codes sans refaire une requete.

  12. #12
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Alors je reprends tu mets le code comme l'exemple et après tu peux faire ta boucle for.

    La boucle while c'est pour remplir ton tableau correctement, afin qu'il soit utilisable plus tard

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    j'ai resolu mon probleme ca correspond un peu a ce que tu m'as dis merci

    voila le code pour ceux que ca interesse

    creation dans un premier temps d'un tableau associatif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $querylvl = mysql_query("SELECT * FROM ".$bdd."_type_membre ORDER BY level") 
    OR die('Erreur !<br/>' .mysql_error());
    $nbtype = mysql_num_rows($querylvl);
    $tab = array();
    while($lvl = mysql_fetch_array($querylvl)){
    	$tab[$lvl['level']] = $lvl['titre'];
    }
    puis utilisation du tablea
    $j = 0;
    for($j=$lvlc+1; $j<$nbtype; $j++){
    $tpl->set_var('L_VALUE_M',$j);
    $tpl->set_var('L_TITREM',$tab[$j]);

    if($j == $lvlsc)
    $tpl->set_var('SELECT','SELECTED');
    else
    $tpl->set_var('SELECT','');

    $tpl->parse("S_C_LVLM","S_C_LEVELM",true);
    }

  14. #14
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Si ca fonctionne

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    691
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 691
    Points : 362
    Points
    362
    Par défaut
    ouais ca fonctionne mais je pensais comme toi qu'un simple $tab[$i]['nomchamp'] suffisait.

    si quelqu'un sait comment faire directement c'est le bienvenue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. l'affectation du resultat d'une requette sql a une variable vb
    Par milanino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/05/2009, 13h00
  2. Dans quel composant stocker le resultat d'une requette
    Par blondelle dans le forum C++Builder
    Réponses: 19
    Dernier message: 18/04/2007, 23h09
  3. [SQL] interroger le resultat d'une requete
    Par jexl dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 15/11/2005, 13h14
  4. [c#]Recuperer le resultat d'une requette SELECT @@IDENTITY
    Par MaxiMax dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/07/2005, 17h12
  5. stocker le resultat de 2 requettes dans un fichier
    Par Issam dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/03/2005, 10h06

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