Région répété avec regroupement

Eléphant du PHP | 120 Messages

08 nov. 2007, 19:37

Bonjour
Je viens de voir un site qui affiche exactement le résultat d'un effet recherché. Voilà j'aimerai afficher des photos horizontalement mais avec le titre corrspondant à ce titre. ca fait des mois que je recherche et je pensais que ce n'était pas possible.
Quelqu'un pourrait m'indiquer comment faire merci d'avance.
L'adresse du site en exemple :
http://www.tadelakt-art.com/rubrique.ph ... ubrique=12

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2007, 20:24

Bonjour,

Tu veux une liste de vignettes avec un titre s'étalant sous toutes les vignettes ?

Est-ce que tu utilises une bdd ?

Eléphant du PHP | 120 Messages

08 nov. 2007, 20:25

Oui, j'uitilise une base mysql

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2007, 20:31

Alors pour chaque liste tu dois avoir l'adresse des vignettes et une ligne pour le commentaire de la liste.

Est-ce l'organisation de ta bdd qui pose pb ou la requête ou l'affichage ?

Eléphant du PHP | 120 Messages

08 nov. 2007, 20:36

Au niveau de la base c'est bon, maintenant lorsque je fais un GROUP BY sur l'ID j'ai le titre et une photo à l'inverse cela repete le titre autant de fois que j'ai de photos.
Donc je pense que c'est un probleme de résultat à l'affichage.
Je te remerci d'avance pour l'aide que tu peux m'apporter

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2007, 20:45

Bah tu peux faire un test dans ta boucle pour ne le faire afficher qu'une fois.

Typiquement :
$titre = '';

//puis dans ta boucle

//boucle
if ($titre != row['titre']) echo row['titre'];

...
$titre = row['titre'];

//fin de boucle

Eléphant du PHP | 120 Messages

08 nov. 2007, 21:04

C'est bon, le groupement fonctionne, je te remerci mais comment le mettre dans le sens horizontal ?

ViPHP
AB
ViPHP | 5818 Messages

08 nov. 2007, 22:17

Tu utilises des div ou une table pour présenter ton code ?

Montres le code d'affichage de tes photos + titre de la partie html

Eléphant du PHP | 120 Messages

09 nov. 2007, 11:11

Bonjour,
j'aimerai utiliser des div
voici le code que j'ai fais
<title>Document sans titre</title>
<style type="text/css">
div#contenu
{
position:relative;
width:150px;
height:120px;
}
</style>
</head>

<body>
<p>
  <?php
$titre='';
?>
 
     <?php 
		$i = 0 ;
		do { 
		if ($i%3==0) {echo '<br>';};
		$i ++;
	?>	
<div id="contenu">
    <?php if ($titre != $row_liste['Titre']) echo $row_liste['Titre'];?><br />
    
   
   
    <img src="photosbiens/<?php echo $row_liste['nom_photo']; ?>" width="150" height="100" />
    
    
    
    <? $titre =   $row_liste['Titre']; ?><br />
</div>
    <?php } while ($row_liste = mysql_fetch_assoc($liste)); ?>

</body>
Merci pouur ton aide

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 nov. 2007, 11:26

Salut pascalbm il faudrait que tu sois un peu plus précis lors de la rédaction de tes messages.
Perso je ne sais pas comment AB fait pour te comprendre j'ai lu le sujet et je n'ai toujours pas compris ce que tu voulais et où tu bloquais :?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 120 Messages

09 nov. 2007, 11:35

bonjour
En fait je voudrai utiliser Css pour pouvoir afficher des photos par catégorie comme l'exemple de cette page
http://www.tadelakt-art.com/rubrique.ph ... ubrique=12
J'ai pu avoir l'info pour afficher qu'une seule fois le titre du groupe mais j'aimerai que les photos soient aligné horizontalement plutot que verticalement comme le code le produit.
J'espere avoir été un peu plus clair et désolé de ne pas l'avoir été plus tôt
Merci à toi pour l'aide que tu pourra m'apporter

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 nov. 2007, 12:28

Voilà une proposition (adaptation de ton script) :
<body>
<?php
  $titre = '';
  $i = 0 ;
  do 
  {    
?>    
    
<?php 
      //Si le titre de la catégorie à changer par rapport au tampon
      if ($titre != $row_liste['Titre']) 
      {         
        // s'il ne s'agit pas de la 1ère image de la catégorie
        if($i != 0) 
          echo '<br/>'.$titre.'</div>';
        
        //ouverture du div conteneur d'un groupe d'image (= une catégorie)  
        echo '<div class="contenu">'; 
        
        //mise en tampon du titre
        $titre =  $row_liste['Titre'];       
        $i = 0;
      }      
      elseif ($i % 3==0) //saut de ligne toutes les 3 images d'une même catégorie
      {
        echo '<br />';
      } 
?>
    <img src="photosbiens/<?php echo $row_liste['nom_photo']; ?>" width="150" height="100" />    
<? 
    
?>     
<?php 
  $i++;
  }  
  while ($row_liste = mysql_fetch_assoc($liste)); 
?>
  <br /><?php echo $titre; ?></div>
</body>
Si tu veux mettre un style au div utilise la propriété class pluôt que id qui doit être unique dans un page.
Avec une largeur un peu plus grande que 150px vu que tu as des images de 150px :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 120 Messages

09 nov. 2007, 12:36

Je te remerci, c'est ce qu je voulais