Problème d'ailgnement dans un tableau

Sandra -  
Atropa Messages postés 2051 Statut Membre -
Bonjour,

J'ai un problème d'alignement d'image et de texte.
Dans un tableau j'ai une image et juste en dessous j'ai une description de l'image.
Il y a 4 images par ligne.

Le problème, c'est qu'en fonction de la longueur de la description, mes images ne sont plus vraiment alignées sur la hauteur.

Voici un bout de mon code :
<table>
       <tr>
              <td>
                     <a href="....."><img src="....." /></a><br/>
		     Descriptif de l'objet - Prix€
              </td>
       </tr>
</table>


Si quelqu'un peut me donner un coup de main svp. Merci.

3 réponses

  1. Lord Zero Messages postés 487 Statut Membre 115
     
    Salut, met les coms dans un td en dessous, donne une dimension a ton tableau en fonction de la taille de tes images
    0
  2. Sandra
     
    J'ai déjà essayé de rajouter un <td> pour les commentaires, le problème c'est qu'ils se retrouvent à la gauche de l'image... je les veux en dessous, jme suis dit, je vais essayer avec un <tr> puisque c'est un retour à la ligne...mais j'ai droit à un joli escalier comme ça.
    Mon tableau a une hauteur et une largeur.
    0
  3. Lord Zero Messages postés 487 Statut Membre 115
     
    <table border="2" width="300" style="border-style:double;text-align:center"> 
    <tr> 
    <td>image1</td> 
    <td>image2</td> 
    <td>image3</td> 
    <td>image4</td> 
    </tr> 
    <tr> 
    <td>com1</td> 
    <td>com2</td> 
    <td>com3</td> 
    <td>com4</td> 
    </tr> 
    </table> 
    


    Développeur VB6, VBS, VBA, VB.NET, C#, HTML, PHP, JAVASCRIPT, SQL.
    0
    1. Sandra
       
      Merci de ton aide, le probleme c'est que le tout s'aafiche via du php. J'ai affiché un code simplifié, le vrai code ressemble à ça:
      echo '<table id="creation">';
      // requête SQL qui ne prend que le nombre d'enregistrements nécessaire à l'affichage.
      $select = 'SELECT * FROM type_objet ORDER BY prix_tobjet ASC limit '.$limite.','.$nombre; /*trier par prix! */
      $result = mysql_query($select,$connect)  or die ('Erreur : '.mysql_error() );
      
      if($it==1){ /*permettre d'afficher que  4x3 photos*/
      		echo '<tr>';
      }
      					
      while($objet=mysql_fetch_array($result)){
      	echo '<td><a href="?o='.$objet['id_tobjet'].'"><img src="'.$objet['img_tobjet'].'" class="image_crea" alt="creation" /></a><br/>
      						'.$objet['descriptif_tobjet'].' - <b>'.$objet['prix_tobjet'].'€</b></td>';             
      		
      if ($it==4){  // 4 pour quatre colonnes 
      	echo '</tr>';
      	$it=0;
      }
      					
      $it++;
      }
      
      echo '</table>';
      

      (dsl pour l'alignement)
      0
    2. Lord Zero Messages postés 487 Statut Membre 115
       
      ou est le pb? je t'ai donné la solution
      0
    3. Atropa Messages postés 2051 Statut Membre 274
       
      bonsoir,

      encore mysql_query() ca fait peur...

      sinon essaie ça mais c'est pas super optimisé

      <?php
      
      	function table($img,$desc) {
      		if(empty($img)) return false;
      		
      		$nbCols = 4;
      		$nbLines = ceil(count($img) / $nbCols);
      		
      		echo '<table id="creation">'."\r\n";
      		for($line = 0; $line < $nbLines ;$line++) {
      			for($i = 0; $i <= 1;$i++) {
      				echo "\t".'<tr>'."\r\n";
      				for($col = 0;$col < $nbCols;$col++) {
      					$key = $line * $nbCols + $col;
      					echo "\t\t".'<td>';
      					if($i == 0 && isset($img[$key])) echo $img[$key]; /* image */
      					else if($i != 0 && isset($desc[$key])) echo $desc[$key]; /* description */
      					echo '</td>'."\r\n";
      				}
      				echo "\t".'</tr>'."\r\n";
      			}
      		}
      		echo '</table>';
      	}
      
      	// requête SQL qui ne prend que le nombre d'enregistrements nécessaire à l'affichage.
      	$select = 'SELECT * FROM type_objet ORDER BY prix_tobjet ASC limit '.$limite.','.$nombre; /*trier par prix! */
      	$result = mysql_query($select,$connect)  or die ('Erreur : '.mysql_error() );
      
      
      	$img = array();
      	$desc = array();
      
      	while($objet=mysql_fetch_array($result)) {
      		$img[] = '<a href="?o='.$objet['id_tobjet'].'"><img src="'.$objet['img_tobjet'].'" class="image_crea" alt="creation" /></a>';
      		$desc[] = $objet['descriptif_tobjet'].' - <b>'.$objet['prix_tobjet'].'€</b>';
      	}
      	/*
      		arrays pour test
      
      	$img = array('img 1','img 2','img 3','img 4','img 5','img 6','img 7','img 8','img 9');
      	$desc = array('desc 1','desc 2','desc 3','desc 4','desc 5','desc 6','desc 7','desc 8','desc 9');
      	*/
      
      	table($img,$desc);
      
      ?>
      0