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 :

Récupérer des variables via plusieurs tables (32 au total ^^) [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut Récupérer des variables via plusieurs tables (32 au total ^^)
    Bonjour

    Je voudrais savoir comment récupérer des données via plusieurs tables pour les regrouper dans un tableau.

    Voici ce que j'ai fait mais qui ne marche malheureusement pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $retour = mysql_query('SELECT * FROM amelioration,carte WHERE amelioration.id=carte.id ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour))
    merci d'avance de votre aide

  2. #2
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    enleve la boucle while, il suffit simplement d'écrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees = mysql_fetch_array($retour)
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ça ne change rien et je prefere garder le while, mon affichage reste correct

  4. #4
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut
    pourkoi li while :
    ta requette retourne une seule ligne je croi !
    non?
    @+
    Ubuntu 8.04 LTS Hardy

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par H-bil
    pourkoi li while :
    ta requette retourne une seule ligne je croi !
    non?
    @+

    non voici la partie while en entiere:

    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
    <table><tr>
    <th>type</th>
    <th>Date</th>
    <th>Pseudo</th>
    <th>Titre</th>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Valider</th>
    </tr>
     
    <?php
    $retour = mysql_query('SELECT * FROM amelioration,carte WHERE amelioration.id=carte.id ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour))  // On fait une boucle pour lister les mods
    {
    ?>
     
    <tr>
    <td><?php echo $_POST['choix']; ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    <td><?php echo $donnees['pseudo'] ?></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo '<a href="rediger_mods.php?modifier_mods=' . $donnees['id'] . '">'; ?>Modifier</a></td>
    <td><?php echo '<a href="liste_mods.php?supprimer_mods=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php
            if (($donnees['valide']) == 0) { //Afficher "valider" si la news a été proposée
            ?>
            <a href="valimods.php?ampmodssavalid=<?php echo $donnees['id'];?>">valider</a>
            <?php
            }
            else{
            echo $donnees['valide'];
            }
            ?>
    </tr>
     
    <?php
    }  // Fin de la boucle qui liste les mods
    ?>
    </table>

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Explique un peu plus ton problème? Qu'est ce qui ne fonctionne pas? omessage d'erreur ou comportement inattendu?
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Yobs
    Explique un peu plus ton problème? Qu'est ce qui ne fonctionne pas? omessage d'erreur ou comportement inattendu?

    Bah je voudrais en une seul requête pouvoir afficher les données de plusieurs tables en même temps et non pas une seul table.
    En gros comment demander a php/mysql "tu me prend toutes les valeur de la table1, table2 ,table3, etc..."

  8. #8
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Donc si je comprend bien tu as un problème au niveau de ta requete ou au niveau de la récupération du résultat.

    A savoir: Si dans tes tables, plusieurs colonnes ont le meme non, seule la dernière colonne sera retournée. Pour résoudre ce probleme, associe tes colonnes en index numérique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_fecth_array($retour,MYSQL_NUM)
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ok mais c'est pas pour une seul table ça? voici ce que j'ai trouvé comme exemple avec cette fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?php
        mysql_connect("localhost", "mysql_user", "mysql_password") or
            die("Impossible de se connecter :  " . mysql_error());
        mysql_select_db("mydb");
     
        $result = mysql_query("SELECT id, name FROM mytable");
     
        while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
            printf ("ID: %s  Name: %s", $row[0], $row[1]);  
        }
     
        mysql_free_result($result);
    ?>
    et on voit bien qu'il ya une table meme si il choisi 2 champs dans cette derniere

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT id, name FROM mytable

  10. #10
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    En fait mysql_fetch_array() ne retourne que le résultat d'une requete mysql sous un tableau associatif ou indéxé ou les deux.

    C'est au niveau de la requete que l'on selectionne plusieurs tables. dans ton select tu doit avoir un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table1,table2,table3.... tablen ...
    Essaie ta requete dans phpmyadmin et tu verras le résultat retourné.
    Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    Loool c'est ce que j'essais de dire depuis tout à l'heure
    Bref au moins maintenant tu connais mon problème ^^

    J'ai fait ça plusieurs fois et encore à l'instant et j'obtiens ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result
    resource in c:\documents and settings\propriétaire\
    mes documents\site_mods_wow_ie\admin\liste_mods.php on line 54
    en mettant 2 tables dans la requête:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM amelioration,carte ORDER BY id DESC

  12. #12
    Membre averti
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Points : 363
    Points
    363
    Par défaut
    C'est normal, tu fais un order sur deux cahmps les même!!!
    Tu as deux champs id...Mysql ne peux pas savoir lequel tu veux!!!
    Donc tu mets
    Admin Réseaux & Systèmes.

    Red Hat Certified Technician...#604006101698235

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 8
    Points : 4
    Points
    4
    Par défaut
    ok merci

    mais finalement j'ai changer de technik
    mais je garde ton information sa peut etre tres utile

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/08/2007, 00h52
  2. Réponses: 3
    Dernier message: 09/02/2007, 14h26
  3. Récupérer des valeurs dans plusieurs variables
    Par cortex024 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/01/2007, 15h33
  4. enregistrer des variables dans une table via requete sql
    Par Echizen1 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 15/09/2006, 15h15

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