28220 sujets

CSS et mise en forme, CSS3

Re bonjour,
me voici à nouveau mais concernant une autre partie de mon site.
cette fois-ci, pas de long discours : ma page

Dans notre ancienne version cette page (comme tout le reste du site) était construite avec des frames. Le principe est le suivant: afficher des informations (contenue dans une table mysql) dans les différentes zones en fonction du nom séléctionné.
Comment peut-on y arriver ? faut-il diviser les "zones" en page et les appeler avec un include php ?
Modifié par p_tite_jo (30 Nov 2005 - 14:41)
J'ai lu ceci mais je n'arrive pas à y adapter à ce que j'aimerais faire...

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
(...)
</head>

<body>
(...)

                <div id="membre">
               <?php

                    $link = mysql_connect("...");
                    mysql_select_db ("....");
                    $query = "select * from T_MEMBRES order by Prenom asc";
                    $result = mysql_query($query);
               ?>
                     <div id="zone1">
                                    Photo
                     </div>
                     <div id="zone2">
                     zone 1

                     <?php
if (!isset($_GET['id'])) $id= 'zzzz'; else $page= $_GET['id'];
 switch($id)
{
case 'zzz': include ('info.php');break;

}
?>
                     </div>
                     <div id="zone3">
                     zone 2
                     </div>
                     <div id="liste">

                          <table>
<?

                                while($row = mysql_fetch_array($result)) {
?>
                                        <tr>
                                                <td>
                                                 <a href="index.php?id=1"><?=$row['Prenom']?> <?=$row['Nom']?></a>
                                                </td>
                                        </tr>
<?
                                }
?>
                        </table>


                     </div>
                     <div id="zone5">
                     zone 3

                     </div>

                </div>

                </div>

        </div>

</div>

</body>

</html>


En fonction de l'id de ma base de donnée, j'aimerais afficher les informations qui correspondent dans les diverses zônes. Comment agir sur l id?
Modifié par p_tite_jo (29 Nov 2005 - 23:19)
Administrateur
Bonjour,

à chaque membre est associé un id, c'est cela?
Eh bien il va y avoir autant de pages différentes que de membres (ou d'id), éventuellement en fonction d'un paramètre présent dans l'URL de la page (comme sur ce Forum pour les sujets, voir l'URL de chacun).
Pour chaque page "www.site.tld/page.php?membre=NNNN", il y aura un header, une liste des membres à gauche obtenue par une boucle sur tous les membres en PHP (après 1 interrogation de la base MySQL: "sors-moi tous les noms et trie-les") puis une requête pour obtenir toutes les infos du membre d'id NNNN. En PHP, tu peux alors remplir la partie droite au fur et à mesure avec les infos voulues:
<img>(nom de la photo du membre NNNN)</img>
<div id="zone1">(des trucs)</div>
etc

Cela nécessite la connaissance de PHP (écrire du texte qui soit un mélange de XHTML et de résultats de requête MySQL stocké dans un (tableau de) variable, interroger une BD MySQL, une boucle) et de CSS pour la mise en forme de chaque partie haut/gauche/autre (rien de trop compliqué là, voir les exemples de gabarits dans les Tutoriels CSS)

La fonction include n'est pas trop nécessaire ici vu que la partie gauche peut s'écrire en (presque) 4 lignes:
_/_/_/_/
interroger la BD
pour chaque membre
--> afficher son nom
fin pour
_/_/_/_/
Ce n'est pas comme un menu qui contiendrait 20 éléments toujours les mêmes et qu'il faudrait retaper à chaque page: là tout est dans la BD et il y a moyen de n'avoir qu'une seule page dont le contenu change en fonction de l'URL exacte ?membre=NNNN
Modifié par Felipe (30 Nov 2005 - 00:14)
Un grand merci pour ces explications !
oui c'est cela...j utilise une table mysql avec id,nom du membre, et quelques infos supplémentaires.

si je te comprends bien j'ai même pas besoin d'utiliser ceci:
                
<?php
if (!isset($_GET['id'])) $id= 'zzzz'; else $page= $_GET['id'];
 switch($id)
{
case 'zzz': include ('info.php');break;

}

mais simplement trouver comment écrire mon lien :
<?

                                while($row = mysql_fetch_array($result)) {
?>
                                        <tr>
                                                <td>
                                             [b]    <a href="index.php?page=accueil"><?=$row['Prenom']?>&nbsp;<?=$row['Nom']?></a>[/b]                                                </td>
                                        </tr>
<?
                                }
?>
                        </table>
pour qu'il aille me rechercher l'id dans la bdd, c'est ça ? avec cette technique, c'est chaque fois la page entière qui est rechargée n'est-ce pas ? et comme mon image en background est plus ou moins volumineuse, ça va ralentir considérablement la navigation pour les connections en 56k... y'a t il un autre moyen qui éviterait ce désagrément ?
Modifié par p_tite_jo (30 Nov 2005 - 11:05)
ca existe encore le 56k ?
.... Parce que chez Free, il en sont a 174 Mbit/s ....

Réduit ton image Smiley confus
Modifié par Maxim (30 Nov 2005 - 13:41)