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 :

Utiliser le résultat d'une requête donnant plusieurs résultats


Sujet :

PHP & Base de données

  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser le résultat d'une requête donnant plusieurs résultats
    Bonjour,

    Je demande votre aide car je ne vois pas comment faire. j'ai beau chercher, j'ai plus d'idées...

    En fait, je fait une requete qui me donne plusieurs résultats. Ensuite, je voudrait récupérer les résultats de cette requete pour l'insérer dans une chaine de caractère. (Cette chaine est uen requete qui me permiet d'insée dans la table avec des contraintes).

    Mais je n'arrive pas à créer plusieurs fois la même chaine avec juste le résultats de ma requete qui change. Voila mno code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql_region = mysql_query("SELECT * FROM `import_region` WHERE `id` = '" . $region_n . "'");
    	$res_region = mysql_fetch_array($sql_region);
     
    	$sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` IN (SELECT `reg_id` FROM `region` WHERE `name` LIKE '%" . addslashes($res_region['region']) . "%')");
    	while($res_departement = mysql_fetch_array($sql_departement))
    	{
    	$region_id = "SELECT `reg_id` FROM `region` WHERE `reg_id` = '" . $res_departement[0] . "'";
    	}
    Merci.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    J'ai pas trop compris ce que tu cherche à faire, donne un exemple
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  3. #3
    Invité
    Invité(e)
    Par défaut
    en fait, je cherche à récuperer des département en fonction d'une région pour les mettre dans ma base. Donc par exemple si ej remplace les variable par uen donnée ca fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $sql_region = mysql_query("SELECT * FROM `import_region` WHERE `id` = '1'");
    	$res_region = mysql_fetch_array($sql_region);
     
    	$sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` IN (SELECT `reg_id` FROM `region` WHERE `name` LIKE '%" . addslashes($res_region['region']) . "%')"); //$res_region['region'] = Ile-de-France
    	while($res_departement = mysql_fetch_array($sql_departement))
    	{
    	$region_id = "SELECT `reg_id` FROM `region` WHERE `reg_id` = '" . $res_departement[0] . "'";
            echo $region_id . "<br />";
    	}
    au final, je veux que ca m'affiche :

    SELECT `reg_id` FROM `region` WHERE `reg_id` = '75'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '77'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '78'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '91'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '92'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '93'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '94'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '95'

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Avril 2005
    Messages
    397
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Avril 2005
    Messages : 397
    Points : 518
    Points
    518
    Par défaut
    et toi tu obtiens quoi ?
    Zend PHP5 Certification
    MySQL 4 Core Certification

  5. #5
    Invité
    Invité(e)
    Par défaut
    pour le moment j'obtiens

    SELECT `reg_id` FROM `region` WHERE `reg_id` = '75'

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    comment sont faites tes tables import_region et region et que contiennent t-elles ? donne nous un exemple de leur contenu (nom de colonne et valeurs).
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  7. #7
    Invité
    Invité(e)
    Par défaut
    import_region contient le nom des region et l'id qui va avec.

    region contient les nom de region et departement, un ID (differents de import_region car ce sont ceux utilisé par le site) et un ID parents (qui sont l'ID des region, cela permet de savoir dans quelle regino se situe un departement).

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Tu sélectionne la région 1 (l'ile de france j'imagine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_region = mysql_query("SELECT * FROM `import_region` WHERE `id` = '1'");
    Déja a quoi sert cette requête ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` IN (SELECT `reg_id` FROM `region` WHERE `name` LIKE '%" . addslashes($res_region['region']) . "%')");
    Je comprend pas trop, si tu veux les département de la région 1 pourquoi tu fait pas directement une seule requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` = 1");
    Essaye deja ca, après la suite (3ème requête) me parait bonne

    Aussi pourquoi n'appelle tu pas tes tables region et departement ca serait plus compréhensible (ok ca c'est un détail).
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    J'avoue aussi que je suis curieu de ce que tu compte faire du résultat attendu (requête générés), les ressoumettre ?

    Et je viens de réaliser que tes requêtes générées ne servent à rien, par exemple cette requête n'as aucun sens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '75'
    Tu recherche le numéro de département du département 75, bah c'est 75
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  10. #10
    Invité
    Invité(e)
    Par défaut
    Oui mais en fait je doit insérer l'Id dans uen table mais à cause d'un clé, je ne peux pas insérer directement un chiffre, je suis obligé d'insérer en passant par une requete.

  11. #11
    Invité
    Invité(e)
    Par défaut
    en fait pas exemple je récupere un truc qui ressemble a ca :
    ID NOM
    75 Paris
    77 Seine et Marne
    78 Yvelines
    91 Essone
    92 Hauts de seine
    93 Seine saint denis
    94 ........
    et je voudrais sortir ca :

    SELECT `reg_id` FROM `region` WHERE `reg_id` = '75'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '77'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '78'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '91'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '92'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '93'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '94'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '95'

  12. #12
    Invité
    Invité(e)
    Par défaut
    bon j'ai reussi à afficher ca :

    98
    99
    100
    101
    102
    103
    104
    105
    mais tous mes resultats sont stockés dans le tableau $res_departement[0]

    comment je peux faire pour les mettre dans un atre tableau pour choisir pas exemple $dep[1] = 98; $dep[2] = 99,... ?

    Merci

  13. #13
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(...){
    $dep[] =$res_departement[0];
    }
    Plutôt que t'utiliser les index, et vu que tu utilise mysql_fetch_array(), utilise plutôt les noms de colonnes, cela sera beaucoup plus parlant dans 2 mois
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  14. #14
    Invité
    Invité(e)
    Par défaut
    oui ca tkt je remplacerais.

    bon j'ai reussi a avancer : j'arrive à stocker dans un tableau. le problème, c'est que pour chaque référence, il y a plusieurs régions. Et la tout se met dans un meme tableau donc à la derniere référence j'ai un tableau de 3600 données.

    Voila mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($res_departement = mysql_fetch_array($sql_departement))
    	{
    		$array[] = $res_departement[0];
    	}
    Maintenant, ce que je voudrais, c'est faire un tableau par référence. comment je peux faire ?

    Merci

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Ca sert à quoi ca n'as aucun sens :

    SELECT `reg_id` FROM `region` WHERE `reg_id` = '75'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '77'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '78'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '91'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '92'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '93'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '94'
    SELECT `reg_id` FROM `region` WHERE `reg_id` = '95'
    Ca veux dire : je cherche le numéro de département dans la table département donc le numéro de département est 75, lol, cogite sur cette phrase, je crois que tu pars dans de mauvaises direction.
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  16. #16
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Donc en gros ce que tu veux c'est que les données soient organisés/regorupés par régions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while(...) {
    $tabRegions[$res_departement['CODE_DE_LA_REGION']][] = $res_departement[0];
    }
    A condition bien sur de récuperer le code dans la requete.
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Oui mais en fait je doit insérer l'Id dans uen table mais à cause d'un clé, je ne peux pas insérer directement un chiffre, je suis obligé d'insérer en passant par une requete.
    Rien compris, tu dois forcément passer par une requete pour insérer, quelle problème te pose la clé ?
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  18. #18
    Invité
    Invité(e)
    Par défaut
    c'est bon j'ai reussi. fallait juste que je vide le tableau à chaque fois.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Oui mais en fait je doit insérer l'Id dans uen table mais à cause d'un clé, je ne peux pas insérer directement un chiffre, je suis obligé d'insérer en passant par une requete.
    Rien compris, tu dois forcément passer par une requete pour insérer, quelle problème te pose la clé ?

    Répond aux question que je t'ai posé pour avancer car la tu pars dans de mauvaises direction.

    Pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sql_region = mysql_query("SELECT * FROM `import_region` WHERE `id` = '1'");
    puis
    $sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` IN (SELECT `reg_id` FROM `region` WHERE `name` LIKE '%" . addslashes($res_region['region']) . "%')");
    Et pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_departement = mysql_query("SELECT * FROM `region` WHERE `parent_id` = 1");
    C'est le début de ton code, déja répond a ca après on avance sur la suite, car les autres t'aident sur des syntaxe alors que tu pars dans de mauvaises direction
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    AH bon tu as réussi, je serais curieu de voir ton code en entier si ca te dérange pas
    Si un problème ne trouve pas de solution, c'est qu'il n'y à pas de problème

Discussions similaires

  1. faire une requête sur le résultat d'une requête
    Par clanou01 dans le forum Requêtes
    Réponses: 6
    Dernier message: 28/08/2012, 11h44
  2. Résultat d'une requête sur plusieurs colonnes
    Par manucha dans le forum Oracle
    Réponses: 9
    Dernier message: 19/12/2007, 12h04
  3. [MySQL] Affichage des résultats d'une requête sur plusieurs pages
    Par leloup84 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/10/2006, 13h24
  4. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20

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