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 :

Requête sur plusieurs tables [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut Requête sur plusieurs tables
    Bonjour à tous,

    Voila j'ai un petit soucis.. ( vous vous en doutez ^^ ) j'aimerai adapter un script ( ou à défaut en faire un neuf ) qui affiche les résultats d'une requete sql sous forme de tableau via une boucle mais le soucis c'est que les données sont situés sur plusieurs tables et non plus sur la même table comme il était prévu à l'origine...

    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
     
    $sql = 'SELECT film FROM bdd WHERE id="' . $id_film . '"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
          while( $data = mysql_fetch_assoc($req) ){
    mysql_free_result ($req);
    mysql_close ();
    $film = $data['film'];
     
    $sql = 'SELECT id_film,timestamp_bg,time_end FROM en_cours WHERE login = "' . $login . '" ORDER BY timestamp_bg';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    echo '<center>';
    echo '<table border="1" cellpadding="3" cellspacing="0" width="60%">';
    echo '<tr>';
    echo '<td>ID</td>';
    echo '<td>Film</td>';
    echo '<td>time</td>';
    echo '</tr>';
     
    $id = 1;
     
          while( $data = mysql_fetch_assoc($req) ){
                echo '<tr>';
                echo "<td>$id</td>";
                echo "<td>"ICI VARIABLE $film !! ( id : variable $id_film )"</td>";
    	    echo '<td> <? include "rebour3.php"; ?></td>'; 
                echo '</tr>';
     
          $id++;
          }
     
    echo '</table>';
    echo '</center>';
     
    mysql_free_result ($req);
    mysql_close ();
    La page rebour3.php comporte un compteur ainsi que la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?
    include "connect_db.php";
    $login = $_SESSION['login'];
    $sql = 'SELECT time_end FROM en_cours WHERE login = "' . $login . '" ';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);
    mysql_free_result ($req);
     
    $time_end = $data['time_end'];
    $timestamp = time();
    $time_restant = $time_end - $timestamp;
    ?>
    La comme ca, pas de soucis avec les varibles $id et $id_film mais les variables $film et $temps_restant ( rebour3.php ) qui proviennent d'autres requetes et non pas celle de la boucle posent problème avec le "mysql_fetch_assoc($req)"...

    Quelqu'un pourrait-il svp m'aider ? plz !

    Big merci d'avance !
    Mad

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Je ne comprends pas bien l'intérêt du code situé dans l'include. Pourrais-tu donner un peu plus de précisions sur ce que tu essayes de faire ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    tu pourrais nous expliquer un peu mieux ce que font tes requetes ?

    - requete 1 : tu recuperes les informations d'un film a partir de son id
    - requete 2 : tu recuperes tous les enregistrements de la base "encours" mais sans critere sur le film alors que tu affiches a chaque tour de boucle le nom du film pris dans la requete 1 (?)
    - requete 3 : $time_restant est calculé d'apres les resultats d'une seule requete donc je ne vois pas ou est ton probleme.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Arf je développe...désolé !

    pour reprendre le schéma de "sabotage", cela donnerait :
    requete 1 : récupère titre du film sur la table bdd à partir de son id
    requete 2 : récupère toutes les entées présentes sur la table "en_cours" WHERE login = login de la session
    ( dsl oublie de ma part sur le code posté ci-dessous, c'est corrigé ! )
    requete 3 : affiche le décompteur qui récupère le timestamp stocké sur la table "en_cours"
    ( si je l'ai mis en include, c'est principalement parce que le script JS de décompteur est assez gros mais ca me gène pas de le mettre directement sur la même page...

    Edit : J'avoue la reqûete mysql est inutile ici car de toute façon, la requete 2 récupère le $temps_restant...

    Je cherche donc à faire un tableau de type :
    +++++++++++++++++++
    + id + film + time +
    +++++++++++++++++++++
    + 1 + $film + $tps_restant +
    ++++++++++++++++++++++
    + 2 + $film ( le suivant si il yen a 2 ds la bdd) + $tps_restant ( idem )+
    ++++++++++++++++++++++
    + 3 + etc + etc + .... +
    +++++++++++++++++++++

    Les requetes sont bien sur pas réellement dans l'ordre mais je sais pas comment les placer pour qu'il n'y est pas d'erreurs..

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Sur la page "rebour3.php", je n'ai maintenant que le script de compte a rebours.
    Et le script principal en modifiant un peu, ca donne :

    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
    41
    42
    43
    44
    45
    46
    47
     
    <?
    $sql = 'SELECT login,id_film,timestamp_bg,time_end FROM en_cours WHERE login = "' . $login . '" ORDER BY timestamp_bg';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
     
    echo '<center>';
    echo '<table border="1" cellpadding="3" cellspacing="0" width="60%">';
    echo '<tr>';
    echo '<td>ID</td>';
    echo '<td>Nom du film</td>';
    echo '<td>Temps restant</td>';
    echo '</tr>';
     
    $id = 1;
     
          while( $data = mysql_fetch_assoc($req) ){
     
    $id_film = $data['id_film'];
    $time_end = $data['time_end'];
    $timestamp = time();
    $time_restant = $time_end - $timestamp;
     
                echo '<tr>';
                echo "<td>$id</td>";
                echo "<td> $id_film -"; 
     
    include "connect_db.php";
    $sql = 'SELECT film FROM bdd WHERE id="' . $id_film . '"';
    $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
    $data = mysql_fetch_array($req);
     
    $film = $dat['film'];
    echo "$film</td>";
     
     
    	    echo '<td> <? include "rebour3.php"; ?></td>'; 
                echo '</tr>';
     
          $id++;
     
    }
    echo '</table>';
    echo '</center>';
     
    mysql_free_result ($req);
    mysql_close ();
    ?>

    Je n'ai pas d'erreur qui s'affichent mais dans le tableau juste $id et $id_film....
    le titre du film et le décompteur ne s'affichent pas....

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    il te manque un "a".

    par contre en utilisant $data pour tes deux boucles, tu as toutes les chances de te melanger.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Par défaut
    Je suis bête...c'est parfois des trucs tout simple qu'on voit pas -_-

    Big merci ! Tout fonctionne

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

Discussions similaires

  1. suite au problème de requête sur plusieur table
    Par michelGProuq dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 07/07/2006, 16h19
  2. [VB6] RecordSet, Oracle, requête sur plusieurs Tables
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/04/2006, 10h19
  3. Requête sur plusieurs tables
    Par sta_schmitt dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/03/2006, 13h54
  4. Requéte sur plusieurs tables
    Par polux23 dans le forum Requêtes
    Réponses: 11
    Dernier message: 23/02/2006, 23h00
  5. Requête sur plusieurs tables
    Par drinkmilk dans le forum Langage SQL
    Réponses: 8
    Dernier message: 11/07/2005, 12h25

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