Afficher le résultat d'une requete Mysql dans un tableau

Fermé
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 - Modifié le 29 mai 2017 à 15:22
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 - 30 mai 2017 à 09:40
Bonjour,
je voudrais écrire dans une zone mais je n'y arrive pas.

j'aimerais afficher le résultat d'une requête Mysql dans la zone avec la scrollbar sous forme de tableau. les td1 seront les résultat de ma requête.

voici mon code html (PS: je mettrais le php à la fin car mon serveur php à du mal a réagir au modification): CSS)

<form method="post" action="index.php">
 <table class="tableau">
  <tr><td COLSPAN=6><div id="bandeau">Ceci est le bandeau</div></tr>
  <!--<tr><td COLSPAN=6><div id="titre"></tr>-->
  <tr><td><h5>Modele<h5></td><td><h5>SIM<h5></td><td><h5>Client<h5></td><td><h5>Début prêt<h5></td><td><h5>Fin prêt<h5></td><td><h5>Rendu</h5><td></tr></div>
  <tr>
   <td COLSPAN=6><div id="contenu">
   
   <tr>
    <td>td1</td><td>td1</td><td>td1</td><td>td1</td><td>td1</td><td>td1</td>
   </tr>
    <?php echo 'bonjour';?>
   
   </div><tr><td><td><td><td><td><td><input type="submit" value="Valider" name="OK" /></tr></form>
  <tr><td COLSPAN=6><div id="piedpage">Ceci est le pied de page</div></td>
  
 </table>

CSS :
div#bandeau {
 margin:7.5% 0px 0px 0px;
 width:650px;
 height:50px;
 background-color:#D41818;
 border:1px solid #000;
 text-align:center;
}

div#contenu {
 /*margin:2px 0px 0px 0px;
 border:1px solid #000;*/
 width:650px;
 height:380px;
 text-align:center;
 overflow:scroll;
 
}

.tableau{border:1px solid black;  overflow:scroll;}
.tableau tr:hover{background:#ccc;}
.tableau td{border-right:1px solid black;}
.tableau tr{border-right:1px solid black;}

div#piedpage {
 margin:5px 0px 0px 0px;
 width:100%;
 height:50px;
 background-color:#33FF99;
}


Merci d'avance pour l'aide

EDIT : Ajout des balises de code

3 réponses

Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
29 mai 2017 à 15:35
Bonjour kevix49,

Sans ton code php difficile de te dire comment faire.

Maintenant en premier temps ton code HTML est bourré d'erreur car il manque des balises de fermeture etc, en voici un début de correction :
<table class="tableau">
  <tr>
    <td COLSPAN=6><div id="bandeau">Ceci est le bandeau</div></td>
  </tr>
  <!--<tr><td COLSPAN=6><div id="titre"></tr>-->
  <tr>
    <td><h5>Modele<h5></td>
    <td><h5>SIM<h5></td>
    <td><h5>Client<h5></td>
    <td><h5>Début prêt<h5></td>
    <td><h5>Fin prêt<h5></td>
    <td><h5>Rendu</h5></td>
  </tr>
  <tr><?php
while(// Ta condition) {   
?>
    <td COLSPAN=6>
      <div id="contenu"></div>
    </td><?php
}
?>
  </tr>
  <tr>
    <td>td1</td>
    <td>td1</td>
    <td>td1</td>
    <td>td1</td>
    <td>td1</td>
    <td>td1</td>
  </tr>
  <tr>
    <td> </td>
    <td> </td>
    <td> </td>
    <td> </td>
    <td> </td>
    <td><input type="submit" value="Valider" name="OK" /></td>
  </tr>
  <tr>
    <td COLSPAN=6>
      <div id="piedpage">Ceci est le pied de page</div>
    </td>
  </tr>
</table>
 
0
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 5
Modifié le 29 mai 2017 à 16:12
merci pour la correction et pour le code php je sais comment on fait, le code est ok ^^
0
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 5
Modifié le 29 mai 2017 à 22:58
Voici le resultat avec le code php (les dernièere modification du css n'ont pas été prise en compte):

je voudrais que ce résultat s'affiche dans le cadre au dessus avec une scrollbar (quand le css sera mis a jour)

code PHP :
<html>
<head>
 <title>Prêt Routeur</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
 <link rel="StyleSheet" type="text/css" href="style.css">
</head>
<body>
<?php
try // On se connecte à MySQL
{
 $bdd = new PDO('mysql:host=localhost;dbname=a2point;charset=utf8', 'root', '');
}
catch(Exception $e) // En cas d'erreur, on affiche un message et on arrête tout
{
 die('Erreur : '.$e->getMessage());
}?>

<form>
 <table>
  <tr>
   <td><a href=".\index.php" rel="nofollow noopener noreferrer" target="_blank"><img src=".\logo.jpg" height="100px"></a> 
   <td><center><h1>Prêt Routeur</h1></center>
  </tr>
 </table>
</form>
 <ul id="tabnav">
  <li class="active"><a href=".\index.php" rel="nofollow noopener noreferrer" target="_blank">Accueil</a></li>
  <li><a href=".\formulaire.php" rel="nofollow noopener noreferrer" target="_blank">Nouveau prêt</a></li>
  <li><a href=".\pret_en_cours.php" rel="nofollow noopener noreferrer" target="_blank">Prêt en cours</a></li>
  <li><a href=".\nouveau.php" rel="nofollow noopener noreferrer" target="_blank">Nouveau modele</a></li>
 </ul>
 <form method="post" action="index.php">
 <table class="tableau">
  <tr><td COLSPAN=6><div id="bandeau">Ceci est le bandeau</div></tr>

  <tr><td><h5>Modele<h5></td><td><h5>SIM<h5></td><td><h5>Client<h5></td><td><h5>Début prêt<h5></td><td><h5>Fin prêt<h5></td><td><h5>Rendu</h5><td></tr></div>
  <tr><td COLSPAN=6><div id="contenu">
    <?php
     $i=0;
     $reponse = $bdd->query('SELECT * FROM pret WHERE rendu ="non"');
     while ($donnees = $reponse->fetch())
     {
    ?>
      <tr>
      <td><?php echo $donnees['routeur'];?>
      <td><?php echo $donnees['sim']?>
      <td><?php echo $donnees['entreprise'];?>
      <td><?php echo $donnees['date_debut'];?>
      <td><?php echo $donnees['date_fin'];?>
      <td><input type="checkbox" name="'<?php echo($i);?>'" id="'<?phpecho($i);?>'" value="1" /> <label for="oui"></label><br />
    <?php
      if (isset ($_POST["'".$i."'"]))
      {
       $rendu='oui';
       $maj= $bdd->query("UPDATE pret SET rendu= '".$rendu."' WHERE id ='".$donnees['id']."'");
       echo "<script>window.location.replace(\"index.php\")</script>";
      }
      $i=$i+1;
     }   ?></div></td>
  <tr><td COLSPAN=6><div id="piedpage">Ceci est le pied de page</div></td>
  <tr><td><td><td><td><td><td><input type="submit" value="Valider" name="OK" /></tr></form>
 
</body>




EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
29 mai 2017 à 16:38
Comme dit plus haut tu dois fermer tes balise…

Exemple de correction d'un partie :
<td><?php echo $donnees['routeur'];?></td>
<td><?php echo $donnees['sim']?></td>
<td><?php echo $donnees['entreprise'];?></td>
<td><?php echo $donnees['date_debut'];?></td>
<td><?php echo $donnees['date_fin'];?></td>
0
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 5
29 mai 2017 à 16:52
oui c'est bon j'ai corrigé après le poste. J'ai testé plusieurs truc et ça ne rentre toujours pas le résultat dans la zone.
0
Felice_ Messages postés 265 Date d'inscription mardi 25 avril 2017 Statut Membre Dernière intervention 20 juillet 2017 11
Modifié le 29 mai 2017 à 17:34
Ta requête est juste ?

Que retourne un :
echo var_dump($reponse);


?
0
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 5
29 mai 2017 à 17:46
oui elle est juste elle m'affcihe les résultat, merci de ton aide mais je vais faire sans scrollbar t'embete pas
0
jordane45 Messages postés 36344 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 septembre 2022 4 352
Modifié le 29 mai 2017 à 23:07
Bonjour,

1 - Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
Cela fait deux fois que j'édite tes messages...

2 - tu colles des TR/TD .... dans... UNE DIV.


3 - D'après ce que je pense comprendre .. tu veux faire un tableau avec les en-têtes de colonnes figés....
Dans ce cas deux possibilités :

a) - Utiliser le plugin javascript TableSorter qui le gère très bien... (voir ici : https://mottie.github.io/tablesorter/docs/example-widget-sticky-header.html

b) - Faire un premier tableau qui contient les "titres" (le header) de ton tableau, puis, en dessous, faire un SECOND tableau qui lui contiendra les données.
NB: Pense à fixer en "dur" les dimensions de tes colonnes si tu choisis cette méthode.

.4 - Penses à activer la gestion des erreurs PDO en appliquant ceci :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs


5 - Pourquoi mettre des quotes dans ce bout de code
if (isset ($_POST["'".$i."'"]))

Il s'écrit tout simplement comme ceci :
if (isset ($_POST[$i]))


6 - Il est plus propre d'éviter d'ouvrir/fermer des balises php à tout bout de champs....
ceci :
 while ($donnees = $reponse->fetch())
     {
    ?>
      <tr>
      <td><?php echo $donnees['routeur'];?>
      <td><?php echo $donnees['sim']?>
      <td><?php echo $donnees['entreprise'];?>

S'écrie plus proprement comme ceci :
 while ($donnees = $reponse->fetch())  {
     echo "<tr>";
     echo "<td>".$donnees['routeur']."</td>";
     echo "<td>".$donnees['sim']."</td>";
     echo "<td>".$donnees['entreprise']."</td>";
     //etc...


Cordialement, 
Jordane                                                                 
0
kevix49 Messages postés 68 Date d'inscription vendredi 4 mars 2016 Statut Membre Dernière intervention 25 mai 2020 5
30 mai 2017 à 09:40
merci des conseil je suis très mauvais en code, j'ai choisis l'option réseau ^^
0