Région répétée + Div + Colonnes

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

25 janv. 2007, 18:31

Tout à fait ! :)
M'enfin on voit bien que le tient il est pas arrivé deuxième :x

;) :langue:
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 193 Messages

25 janv. 2007, 18:31

Le cynisme ne me gêne pas.

je ne me priverai pas si un jour je suis calé en PHP.

Bien vu pour le validator: 29 erreurs!!! ça frise le record!

On cherche deux bons programmeurs payés pas chers du tout, ça vous intéresse??? Lol!

Bon, on va s'attacher à travailler sur les tables avec vos conseils: nous reviendrons vers vous quand ce sera en meilleure voie!

@+ et merci beaucoup

PS: continuez à être cyniques, c'était drôle
PS2: "Rire de soi, c'est rire de tout" Mathieu Chedid

Eléphant du PHP | 193 Messages

26 janv. 2007, 12:37

Bonjour à tous!

je reviens vers vous après avoir fait une présentation sans div , mais avec un tableau: 2 colonnes et 4 lignes.

La boucle fonctionne et recopie bien les tableaux sur 8 lignes par pages, même si j'ai utilisé do et while (je n'ai pas compris pour utiliser le while simple). Mais pour ce qui est de la recopie sur des colonnes; je n'ai trouvé aucun tuto clair pour m"expliquer le fonctionnement.

Mon code est le suivant:

Code : Tout sélectionner

<div id="contenu"> <?php do { ?> <table height="110px" width="461px" border="0" cellspacing="0" cellpadding="0" background="vignette_annuaire.gif"> <tr> <td class="photo" rowspan="4" height="97px" width="140px" ><img src="<?php echo $row_rs_camping['urlphoto4_camping']; ?>" alt="<?php echo $row_rs_camping['altphoto1_camping']; ?>"/></td> <td class="nom" colspan="2" width="315px" height="30px"><?php echo $row_rs_camping['nom_camping']; ?></td> </tr> <tr> <td width="315px" height="24px" colspan="2"><span class="Style1"><?php echo $row_rs_camping['cp_camping']; ?> <?php echo $row_rs_camping['ville_camping']; ?></span></td> </tr> <tr> <td colspan="2" width="315px" height="18px" valign="top"><span class="Style1"><?php echo $row_rs_camping['dateouverture_camping']; ?></span></td> </tr> <tr> <td width="150px" height="25px" valign="top"><span class="Style1"><?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.gif" alt="Camping '.$row_rs_camping['nbetoiles_camping'].' étoiles"></img>'; ?></span></td> <td width="165px" height="25px" valign="top"><a href="http://develop.web.free.fr/template_generic2.php?num_camping=<?php echo $row_rs_camping['num_camping']; ?>"><span class="Style1"> Fiche complète</span></a></td> </tr> </table> <?php } while ($row_rs_camping = mysql_fetch_assoc($rs_camping)); ?> </div>
Un peu d'aide ne serait pas de refus!

La nouvelle page est disponible ici:

http://develop.web.free.fr/template_generic4.php

Merci pour votre soutien!

Eléphant du PHP | 193 Messages

26 janv. 2007, 13:42

Ok! C'est réussi. Ce n'est peut-être pas conventionnel, mais ça fonctionne et c'est valide par W3C!

C'est de nommer le tableau avec l'attribut class et utiliser un float:left.

Voir le code:

Code : Tout sélectionner

<?php do { ?> <table class="tableau" height="110px" width="461px" border="0" cellspacing="0" cellpadding="0" background="vignette_annuaire.gif"> <tr> <td class="photo" rowspan="4" height="97px" width="140px" ><img src="<?php echo $row_rs_camping['urlphoto4_camping']; ?>" alt="<?php echo $row_rs_camping['altphoto1_camping']; ?>"/></td> <td class="nom" colspan="2" width="315px" height="30px"><?php echo $row_rs_camping['nom_camping']; ?></td> </tr> <tr> <td width="315px" height="24px" colspan="2"><span class="Style1"><?php echo $row_rs_camping['cp_camping']; ?> <?php echo $row_rs_camping['ville_camping']; ?></span></td> </tr> <tr> <td colspan="2" width="315px" height="18px" valign="top"><span class="Style1"><?php echo $row_rs_camping['dateouverture_camping']; ?></span></td> </tr> <tr> <td width="150px" height="25px" valign="top"><span class="Style1"><?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.gif" alt="Camping '.$row_rs_camping['nbetoiles_camping'].' étoiles"></img>'; ?></span></td> <td width="165px" height="25px" valign="top"><a href="http://develop.web.free.fr/template_generic2.php?num_camping=<?php echo $row_rs_camping['num_camping']; ?>"><span class="Style1"> Fiche complète</span></a></td> </tr> </table> <?php } while ($row_rs_camping = mysql_fetch_assoc($rs_camping)); ?>

Pour le do, par contre, pas d'idée...
Et on a toujours un problème pour la méthode aléatoire qui charge de nouveaux enregistrements à chaque actualisation de la page: mais ceci est autre histoire...

ViPHP
ViPHP | 1961 Messages

26 janv. 2007, 14:07

Bonjour,

Avec la structure que tu as actuellement, tu tombes dans ce que qui est reproché à l'élément (balise) table, avec raison.

Tu t'en sers pour faire de la présentation et non pas pour structurer tes données.

Actuellement tu crées une table par élément, tu dois avoir une seule table pour tous les éléments et un élément par cellule (<td>).

La présentation tu dois la faire avec du CSS (de préférence un fichier séparé) mais pour commencer tu peux le faire dans le même.

Pour commencer (on ne s'occupe pas de la présentation):
Un élément "table" qui contiendra donc tes 8 lignes (<tr>).
Chaque ligne contiendra 2 cellules (<td>)
Là tu as ta structure.

Ensuite on remarque, dans chaque cellule, une image à gauche et du texte à droite, ça c'est de la présentation, c'est CSS qui doit s'en charger.

Pour la boucle,
Actuellement tu as
do {
   // Tes instructions
} while (condition)
Le problème c'est si tu n'as pas de données, car tu exécutes au mois une fois la boucle.
La structure qui te conviens c'est un While
while (condition) {
   // Tes instructions
}
Pour résumer, ta structure
// on crée la table avant le début de la boucle
<table>
<?php while ($row_rs_camping = mysql_fetch_assoc($rs_camping)) { ?>
   <tr> <!-- Création d'une ligne -->
      <td> <!-- Création d'une cellule, celle de gauche  -->
         <!-- Contenu de la cellule gauche -->
         <img class="un_nom_de_class_CSS" .... /> 
         <span class="un_nom_de_class_CSS_différent">Ici je mets mon texte</span>
         <a ......>mon lien </a>
      </td>
      <td> <!-- Création d'une cellule, celle de droite-->
         <!-- Contenu de la cellule gauche -->
         <img class="un_nom_de_class_CSS" .... /> 
         <span class="un_nom_de_class_CSS_différent">Ici je mets mon texte</span>
         <a ......>mon lien </a>
      </td>
   </tr>
<?php } // Fin de la boucle ?>
<!-- Fermeture de la table -->
</table>
Construis déjà la structure, on s'occupe après de la présentation.

EDIT :

J'ai posté sans avoir vu ton dernier message.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 193 Messages

26 janv. 2007, 15:48

Nous avons essayé de suivre tes conseils; et visiblement on a pas fait les choses dans les règles, puisqu'on obtient 6 cellules en tout, à savoir 2 colonnes et 3 lignes. Etrange!!! (pour les colonnes c'est ok, mais pour les lignes,... on ne comprend pas bien).

Notre code se compose de ça, avant le HTML:

Code : Tout sélectionner

<?php $currentPage = $_SERVER["PHP_SELF"]; ?> <?php require_once('connections/free.php'); ?> <?php $maxRows_rs_camping = 4; $pageNum_rs_camping = 0; if (isset($_GET['pageNum_rs_camping'])) { $pageNum_rs_camping = $_GET['pageNum_rs_camping']; } $startRow_rs_camping = $pageNum_rs_camping * $maxRows_rs_camping; mysql_select_db($database_conn_develop, $conn_develop); $query_rs_camping = "SELECT * FROM tbl_camping ORDER BY rand()"; $query_limit_rs_camping = sprintf("%s LIMIT %d, %d", $query_rs_camping, $startRow_rs_camping, $maxRows_rs_camping); $rs_camping = mysql_query($query_limit_rs_camping, $conn_develop) or die(mysql_error()); $row_rs_camping = mysql_fetch_assoc($rs_camping); if (isset($_GET['totalRows_rs_camping'])) { $totalRows_rs_camping = $_GET['totalRows_rs_camping']; } else { $all_rs_camping = mysql_query($query_rs_camping); $totalRows_rs_camping = mysql_num_rows($all_rs_camping); } $totalPages_rs_camping = ceil($totalRows_rs_camping/$maxRows_rs_camping)-1; $queryString_rs_camping = ""; if (!empty($_SERVER['QUERY_STRING'])) { $params = explode("&", $_SERVER['QUERY_STRING']); $newParams = array(); foreach ($params as $param) { if (stristr($param, "pageNum_rs_camping") == false && stristr($param, "totalRows_rs_camping") == false) { array_push($newParams, $param); } } if (count($newParams) != 0) { $queryString_rs_camping = "&" . htmlentities(implode("&", $newParams)); } } $queryString_rs_camping = sprintf("&totalRows_rs_camping=%d%s", $totalRows_rs_camping, $queryString_rs_camping); ?>
et de ça dans la balise <body>:

Code : Tout sélectionner

// on crée la table avant le début de la boucle <table> <?php while ($row_rs_camping = mysql_fetch_assoc($rs_camping)) { ?> <tr> <!-- Création d'une ligne --> <td> <!-- Création d'une cellule, celle de gauche --> <!-- Contenu de la cellule gauche --> <img class="photo" src="<?php echo $row_rs_camping['urlphoto4_camping']; ?>" alt="<?php echo $row_rs_camping['altphoto1_camping']; ?>" /> <span class="texte"><h1><?php echo $row_rs_camping['nom_camping']; ?></h1> <p><?php echo $row_rs_camping['cp_camping']; ?> <?php echo $row_rs_camping['ville_camping']; ?></p> <p><?php echo $row_rs_camping['dateouverture_camping']; ?></p> <p><?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.gif" alt="Camping '.$row_rs_camping['nbetoiles_camping'].' étoiles"></img>'; ?></p></span> <a href="http://develop.web.free.fr/template_generic2.php?num_camping=<?php echo $row_rs_camping['num_camping']; ?>">Fiche complète</a> </td> <td> <!-- Création d'une cellule, celle de droite--> <!-- Contenu de la cellule gauche --> <img class="photo" src="<?php echo $row_rs_camping['urlphoto4_camping']; ?>" alt="<?php echo $row_rs_camping['altphoto1_camping']; ?>" /> <span class="texte"><h1><?php echo $row_rs_camping['nom_camping']; ?></h1> <p><?php echo $row_rs_camping['cp_camping']; ?> <?php echo $row_rs_camping['ville_camping']; ?></p> <p><?php echo $row_rs_camping['dateouverture_camping']; ?></p> <p><?php echo '<img src="Images/etoile'.$row_rs_camping['nbetoiles_camping'].'.gif" alt="Camping '.$row_rs_camping['nbetoiles_camping'].' étoiles"></img>'; ?></p></span> <a href="http://develop.web.free.fr/template_generic2.php?num_camping=<?php echo $row_rs_camping['num_camping']; ?>">Fiche complète</a> </td> </tr> <?php } // Fin de la boucle ?> <!-- Fermeture de la table --> </table>
Merci pour ton aide Ajoloca: c'est super agréable d'avoir un soutien comme le tien.