Tablô...

Eléphant du PHP | 124 Messages

22 mars 2006, 13:30

Salut a tous! voila mon problème du jour:
Je voudrais faire un tableau sur ma page dans lequel se trouveraient des info provenant de ma base de données (déjà ça je sais pas faire :lol: c'te honte...!)
Plus compliqué: Admettons les colonne nom_voiture et
état (cassé/réparée).
Je voudrais que les voitures ayant était réparées depuis 1 semaine n'apparraissent plus dans le tableau...il faudrait donc que sa taille soit variable..j'vous l'avait bien dit que ce serait plus compliqué :wink:
Mais c'est pas finit:
je voudrais qu'à chaque ligne corresponde un bouton qui me permettrait d'accéder à des informations relatives à la ligne concernés sur une page différente...(par exemple la couleur du véhicule)....
alors moi qui ai encore du mal à faire un echo vous comprendrai bien que j'ai un peu de mal... :wink:

Merci de votre aide!

P.S: non non je ne compte pas me recycler en garagiste 8) c'était juste un exemple grossier

Avatar du membre
ViPHP
ViPHP | 3008 Messages

22 mars 2006, 14:21

L'affichage de ton tableau se fait à partir de ta requête "Je voudrais que les voitures ayant était réparées depuis 1 semaine". Tu mets juste le tableau à l'extérieur de la boucle et les <tr> et <td> dedans.

Pour ta seconde question, il te suffit de passer en paramètre l'ID par exemple qui sera unique à chaque fois et de la récupérer par méthode POST ou GET comme tu veux. Sur la requête de ton autre page, tu fais uns sélection à partir de cette variable.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mars 2006, 14:24

Pour faire un tableau à partir d'une table en base, ce n'est pas bien compliqué (c'est étonnant d'ailleurs que ce ne soit pas déjà dans la faq :)).

Il te faut écrire et exécuter une requête sql qui te ramenera les champs (colonnes) des différents enregistrements, et lire en boucle le résultat pour l'afficher au fur et à mesure avec des balises html :
<?$sql = "SELECT champ1, champ2, champ3 FROM maTable";
$resultSet = mysql_query($sql); // exécution de la requête

echo '<table>' ; // on ouvre le tableau

while ($row = mysql_fetch_array($resultSet)) { // on boucle sur le résultat de la requête en mettant chaque ligne dans $row
?>
  <tr>
    <td><?php echo $row['champ1']?></td>
    <td><?php echo $row['champ2']?></td>
    <td><?php echo $row['champ3']?></td>
  </tr>
<? } // on affiche ainsi le contenu des différents champs 

echo '</table>'; // on ferme le tableau
?>
Pour ne ramener que les enregistrement qui répondent à un certain critère, on peut filtrer directement dans la requête en ajoutant la clause where :
$sql = "SELECT id, nom_voiture, etat, date_reparation FROM voiture";
$sql.= " WHERE date_reparation > '$date'"; // avec $date étant la date du jour - 7
Tu ne récupères ainsi que les voiture dont la date de réparation est supérieur à $date, et le contenu de ton tableau s'adapte automatiquement

Enfin pour le lien, il te faut récupérer dans ta requete un identifiant unique caractérisant chaque enregistrement. Tu peux ensuite l'utiliser dans un lien lorsque tu génères le tableau :
<td><a href="page_detail.php?id=<?php echo $row['id'];?>Texte du lien</a></td>
Il ne te reste plus qu'à créer la page_detail.php, qui récuperera la variable passée en paramètre dans $_GET['id'], et recommencer ta requête, avec pour condition cette fois de ne ramener que l'enregistrement corredonant :
$sql = "SELECT id, nom_voiture, etat, date_reparation FROM voiture";
$sql.= " WHERE id = " . $_GET['id'];
voilà pour les grandes lignes... :)

Eléphant du PHP | 124 Messages

22 mars 2006, 14:47

merci a tous les deux j'ai pas encore eu le temps de tester mais c'est super sympa d'être aussi détaillé (surtout Ryle)