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 :

Pb affichage du résultat de ma requète [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut Pb affichage du résultat de ma requète
    Bonjour

    J'ai 2 pages, la 1ère permet de spécifier les critères de sélection dans un form: Clé de batiments non rentrée ou Mouvements de clé en spécifiant Date de Sortie et Date de Retour.
    Dans la 2ème page, j'effectue une requète permettant d'afficher l'état des clés de batiments suivant l'option choisi dans la 1ère page, mais voila le soucis c'est qu'il ne m'affiche pas le résultat de ma requête sur la page. Si je choisi la 2ème option, il me récupère bien les dates de sortie et retour de la page précédente écrites auparavant dans les 2 input. Il m'affiche bien l'en tête du tableau dans les 2 cas et puis plus rien. Voici le code.

    1ère page avec le form
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    <?php
        //Chargement de l'en-tête de la page
        include ('head.php');
    ?>
     
    <script language="Javascript">
    function Zone() {
    	if (document.etats.type[0].checked)
    	    document.getElementById('mvtcles').style.display='none';
    	else
    	    document.getElementById('mvtcles').style.display='';
    }
     
    function Generer() {
    	type=document.etats.type[0].checked;
    	debut=document.etats.debut.value;
    	fin=document.etats.fin.value;
    	window.open("apercu.php?type=" + type + "&debut=" + debut + "&fin=" + fin,"","");
    }
    </script>
     
     
    <center>
    <table border=1 width="400px" cellpadding=1 cellspacing=0>
    <tr>
      <td style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#ffff99', endColorStr='#FFFFFF', gradientType='1'" bgcolor="#ffff99" colspan=10>
            <font face="Arial" size=3><b>&nbsp;Génération d'Etats</font></b>
      </td>
    </tr>
     
      <tr>
         <td>
    	     <form action='etats.php' name=etats method='get'><br>
    	       <input type=radio name=type style='border:0' onClick='Zone()' value=0 checked> Clés non rentrées<br>
    	       <input type=radio name=type style='border:0' onClick='Zone()' value=1> Mouvements de clés<br><br>
     
    	       <div id='mvtcles' style='display:none' align=center>
                Sortie le : <input type=text size=10 name=debut value='<?=date("d-m-Y")?>'>
    				    Retournée le : <input type=text size=10 name=fin value='<?=date("d-m-Y")?>'>
             </div>
             <br>
    	   </td>
       </tr>
       <tr>
        <td align=center style="filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr='#ffff99', endColorStr='#FFFFFF', gradientType='1'" bgcolor="#ffff99" colspan=10>												 
    	   <input type=button value=Valider onClick='Generer()'>&nbsp;
    	   <input type=button value=Retour onClick='window.location="index.php"'>
       </td>
      </tr>
    </table>
    </center>
    <?
        //Chargement des balise de fin de la page
        include ('end.php');
    ?>
    et ma 2ème page
    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?
    // Chargement des paramètres
    //de connexion à la base de données
    include ('connexion.php');
    include ('fonctionsdate.php');
    ?>
    <html>
      <head>
        <title>Gestion des clés</title>
    <?
      $type=$_GET['type'];
      $debut=$_GET['debut'];
      $fin=$_GET['fin'];
      $titre=($type=='true')?"Clés non rentrées":"Clés sorties le $debut et retournées le $fin";
      echo $titre;
    ?>
      <table width='98%' align=center>
      <tr>
       <td>
       <?
    	 if ($type=='true')
       {
    	    $req = "SELECT tbl_emprunts.*,tbl_cles.Lieu FROM tbl_emprunts,tbl_cles WHERE Date_Retour='0000-00-00' AND tbl_emprunts.Num_Cle=tbl_cles.ID_cles ORDER BY Date_Sortie DESC";
    	    $result=mysql_query($req);
    	    if($result)
    	    {
              echo "<table border=1 cellspacing=0 width='100%'><tr align=center><th width='5%'>Clé</th><th>Entreprises</th><th>Téléphone</th><th>Agent</th><th>Lieu</th><th>Sortie</th></tr>";
              //A partir de cette ligne plus rien ne s'affiche
              while ($liste = mysql_fetch_array($result))
              {
                  echo "<tr onMouseOver='this.style.background=lightgreen' onMouseOut='this.style.background=#ffffff'><td align=right>".$liste['Num_cle']."</td><td align=center>";
                  if ($liste['num_Entreprise'])
                  {
                      $resEntr = mysql_query("SELECT * FROM tbl_entreprises WHERE ID_Entreprise =".$liste['num_Entreprise']);
                      if ($resEntr)
                      {
                          $nom_Entreprise = dbGetResult($resEntr,0,'nom_Entreprise');
                      }
                      else
                      {
                          $nom_Entreprise = '';
                          echo $nom_Entreprise;
                      }
                  }
                  echo "</td><td align='center'>".$liste["Telephone"]."</td><td align='center'>".$liste["Nom_Agent"]."</td><td align='center'>".$liste["Lieu"]."</td><td align='center'>".datetofrench($liste["Date_Sortie"])."</td></tr>";
                  }
                  echo "</table>";
              }
              else
              {
                  echo "Aucune clé empruntée.";
              }
          }
    	    else
    	    {
              $result = mysql_query("SELECT  * FROM tbl_emprunts WHERE Date_Sortie='".datetoenglish($debut)."' AND Date_Retour='".datetoenglish($fin)."' ORDER BY Num_Cle");
              if ($result)
              {
                  echo "<table cellspacing=0 width='100%'><tr align=center><th width='5%'>Clé</th><th>Entreprise</th><th>Téléphone</th><th>Agent</th></tr>";
                  //A partir de cette ligne plus rien ne s'affiche
                  while ($liste = mysql_fetch_array($result))
                  {
                      echo "<tr onMouseOver='this.style.background=\"lightgreen\"' onMouseOut='this.style.background=\"\"'><td align=right>".$liste["Num_cle"]."</td><td align=center>";
                      if ($liste['Num_Entreprise'])
                      {
                          $resEntr = mysql_query("SELECT * FROM tbl_entreprises WHERE ID_Entreprise =".$liste['num_Entreprise']);
                          if ($resEntr)
                          {
                              $nom_Entreprise = dbGetResult($resEntr,0,"nom_Entreprise");
                          }
                          else
                          {
                              $nom_Entreprise = "";
                              echo $nom_Entreprise;
                          }
                      }
                      echo "</td><td align=center>".$liste['Telephone']."</td><td align=center>".$liste['Nom_Agent']."</td></tr>";
     
                  }
                  echo "</table>";
              }
              else
              {
                  echo ("Aucune clé empruntée");
              }
          }
    ?>
       </td>
      </tr>
      </table>
    <?
      include ('end.php');
    ?>

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Commence par ajouter "or die(mysql_error())" au bout de tous tes mysql_query pour voir d'éventuelles erreurs de requêtes...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Je les ai ajouté mais il n'y a pas d'erreur.

  4. #4
    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
    Points : 751
    Points
    751
    Par défaut
    Quant tu executes la requete directement sur ta base de donnée tu as bien le nombre de resultats voulu ou pas ?
    Aucune aide par MP, utilisez le forum.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Toute mes requètes fonctionnent correctement et me retournent le résultat voulu.

  6. #6
    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
    Points : 751
    Points
    751
    Par défaut
    Une méthode chiante mais efficace, test ton code avec des echo voir si ca rentre bien dans les ifs, si les variables se remplissent bien etc ... tu tomberas sur la source du problème.
    Aucune aide par MP, utilisez le forum.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Sur le premier if si je met echo $result;

    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
     
    <?
    // Chargement des paramètres
    //de connexion à la base de données
    include ('connexion.php');
    include ('fonctionsdate.php');
    ?>
    <html>
      <head>
        <title>Gestion des clés</title>
    <?
      $type=$_GET['type'];
      $debut=$_GET['debut'];
      $fin=$_GET['fin'];
      $titre=($type=='true')?"Clés non rentrées":"Clés sorties le $debut et retournées le $fin";
      echo $titre;
    ?>
      <table width='98%' align=center>
      <tr>
       <td>
       <?
    	 if ($type=='true')
       {
    	    $req = "SELECT tbl_emprunts.*,tbl_cles.Lieu FROM tbl_emprunts,tbl_cles WHERE Date_Retour='".$fin."' AND tbl_emprunts.Num_Cle=tbl_cles.ID_cles ORDER BY Date_Sortie DESC";
    	    $result=mysql_query($req) or die(mysql_error());
                //ICI
    	    echo $result;
    il me retourne à l'affichage Ressource id#5
    sur les autres if, il n'y a aucun affichage.

    Sur l'autre partie de la boucle
    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
     
    else
    	    {
              $result = mysql_query("SELECT  * FROM tbl_emprunts WHERE Date_Sortie='".datetoenglish($debut)."' AND Date_Retour='".datetoenglish($fin)."' ORDER BY Num_Cle") or die(mysql_error());
              if ($result)
              {
                  echo $result;
                  echo "<table border=1 cellspacing=0 width='100%'><tr align=center><th width='5%'>Clé</th><th>Entreprise</th><th>Téléphone</th><th>Agent</th></tr>";
                  while ($liste = mysql_fetch_array($result))
                  {
                      echo "<tr onMouseOver='this.style.background=\"lightgreen\"' onMouseOut='this.style.background=\"\"'><td align=right>".$liste['Num_Cle']."</td><td align=center>";
                      if ($liste['num_Entreprise'])
                      {
                          $resEntr = mysql_query("SELECT * FROM tbl_entreprises WHERE ID_Entreprise =".$liste['num_Entreprise']) or die(mysql_error());
                          if ($resEntr)
                          {
                              $nom_Entreprise = dbGetResult($resEntr,0,"nom_Entreprise");
                          }
                          else
                          {
                              $nom_Entreprise = "";
                              echo $nom_Entreprise;
                          }
                      }
                      echo "</td><td align=center>".$liste['Telephone']."</td><td align=center>".$liste['Nom_Agent']."</td></tr>";
     
                  }
                  echo "</table>";
              }
              else
              {
                  echo ("Aucune clé empruntée");
              }
          }
    Cela fonctionne à part une ligne. Je reprend un programme et j'avais cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nomentreprise=$cbd->dbGetResult($resEntr,0,"nomentreprise");
    j'ai voulu la remplacer par celle ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $nom_Entreprise = dbGetResult($resEntr,0,'nom_Entreprise');
    et il me dit
    Fatal error: Call to undefined function: dbgetresult() in c:\program files\easyphp1-8\www\cles\apercu.php on line 70

    Comment peut on adapter cette ligne pour qu'elle fonctionne

  8. #8
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    dbgetresult est une méthode de classe utilisée sur l'objet $cbd dans ton code d'origine, c'est pour ça que tu peux pas l'appeler comme ça. Après faut voir ce qui est fait dedans pour voir si tu peux faire une fonction avec le même traitement mais si ça a été mis dans une classe c'est qu'il doit bien y avoir une raison...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Effectivement c'est dans une classe
    voici la fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	function dbGetResult($result,$i,$champ) {
    	    return @mysql_result($result,$i,$champ);
    	}
    Je voudrais un moyen d'avoir la même chose sans passer par ce système de classe.

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Bah si tu remplaces bêtement dbGetResult par mysql_result (sans le @...) ça devrait marcher logiquement nan
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Il n'y a plus d'erreur mais il y a juste un hic.
    Je n'arrive toujours pas à avoir le nom de l'entreprise. Pourtant la requète est bonne.

    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
     
          if ($liste['num_Entreprise'])
                      {
                          //echo $liste['num_Entreprise'];
                          $resEntr = mysql_query("SELECT Nom_Entreprise FROM tbl_entreprises WHERE ID_Entreprise =".$liste['num_Entreprise']) or die(mysql_error());
                          //echo $liste['num_Entreprise'];
     
                          if ($resEntr)
                          {
                              $nom_Entreprise = mysql_result($resEntr,0,"nom_Entreprise");
     
                          }
                          else
                          {
                              $nom_Entreprise = "";
                              echo $nom_Entreprise;
                          }
                      }
                      echo "</td><td align=center>".$liste['Telephone']."</td><td align=center>".$liste['Nom_Agent']."</td></tr>";

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Euh là avec ton code c'est normal qu'il affiche rien vu que le seul echo du nom que tu fais c'est après l'avoir initialisé avec une chaîne vide

    Fais un echo de ta requête et teste dans phpmyadmin on sait jamais...
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Bonjour

    Merci pour toutes corrections. Maintenant tout fonctionne correctement.

    Merci à tous!!

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

Discussions similaires

  1. [MySQL] affichage des résultats de plusieurs requêtes
    Par Mathieu72 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 05/02/2007, 02h19
  2. [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
  3. [VBA Access]Pb affichage de résultat d'une requête
    Par BouGeTonQ dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/06/2006, 18h49
  4. Affichage du résultat d'une requête paramétrée
    Par Julien Dufour dans le forum Access
    Réponses: 6
    Dernier message: 11/05/2006, 14h32
  5. [MySQL] Affichage des résultats d'un requête
    Par wiwi dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 07/02/2006, 11h25

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