Page 1 sur 1

Afficher une list sur 2 colonnes

Posté : 05 oct. 2008, 17:34
par mrarobaz
Bonjour,

pouvez-vous aider a afficher ma liste sur 2 colonnes avec X nombre pas colonne

Voici un Bout du code ou sera la liste. il y'aura le nom de la categorie avec le nombre qu'il contien dans la même colonne
<?php
ini_set('display_errors',1);
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

require_once('admin/includes/connect.inc.php');

if(!isset($_GET['cat'])){
	// requête sql
	// on effectue notre requete avec le nombre d'éléments souhaités
	$sLOGICIEL="select DISTINCT(logiciel_cat) from logiciel ORDER BY logiciel_cat ASC";
	// on sélectionne les entrées de la table
	$LOGICIEL=mysql_query($sLOGICIEL,$connect) or die(mysql_error());
	//$d_LOGICIEL=mysql_fetch_array($query);
		?>

		<H3>Choissisez votre catégorie </H3>
<table width="600">
	<thead align="left">
	<tr>
	<?
	
	while($d_LOGICIEL=mysql_fetch_array($LOGICIEL)){
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		$sHIT="SELECT SUM(logiciel_nbhits) AS total from logiciel where logiciel_cat='".$d_LOGICIEL['logiciel_cat']."'" ;	
		$HIT = mysql_query($sHIT,$connect) or die(mysql_error());
	    $row_HIT = mysql_fetch_object($HIT);
	    
		if ($row_HIT)
	        $total = $row_HIT->total;
	    else
	        $total = 0;
	    mysql_free_result($HIT);
	    
		
		//$total contient la valeur, s'il n'a pas pu faire de somme elle contiendra 0 car ca veut dire qu'il n'y avait pas de hits pour la catégorie
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	

		echo '
  <td id="centre" style="padding:10px 0;" width="300"><P><a href="logiciel.php?cat='.$d_LOGICIEL['logiciel_cat'].'">'.$d_LOGICIEL['logiciel_cat'].'</a></P></td>
  <td width="100"></td>
  <td width="200"><FONT COLOR="#F88005"> Hits: '.$total.'</FONT></td>
  </tr><br/>';

}?>
</table>
<?

}
else{  //la suite des autre categori ... 
Merci d'avance pour votre aide

Posté : 05 oct. 2008, 17:46
par Ryle
Pas sur d'avoir bien compris ce que tu voulais faire, mais je pense que ce tuto de la FAQ devrait t'aider à organiser les colonnes de ton tableau :
:arrow: [Tuto]
 Des Galeries Dynamiques (opérateur Modulo)[/url]

Posté : 05 oct. 2008, 18:25
par mrarobaz
J'ai petit souci j'ai essayer affciher ma liste sur 2 colonne mais elle reste sur une seule

<?php
$nbCols = 2; // nombre de colonnes du tableau  
$cpt = 6; // compteur d'éléments  

ini_set('display_errors',1);
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

require_once('admin/includes/connect.inc.php');

if(!isset($_GET['cat'])){
	// requête sql
	// on effectue notre requete avec le nombre d'éléments souhaités
	$sLOGICIEL="select DISTINCT(logiciel_cat) from logiciel ORDER BY logiciel_cat ASC";
	// on sélectionne les entrées de la table
	$LOGICIEL=mysql_query($sLOGICIEL,$connect) or die(mysql_error());
	//$d_LOGICIEL=mysql_fetch_array($query);
		?>

		<H3>Choissisez votre catégorie </H3>
<table width="600">
	<thead align="left">
	
	<?
	
	while($d_LOGICIEL=mysql_fetch_array($LOGICIEL)){
		///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		$sHIT="SELECT SUM(logiciel_nbhits) AS total from logiciel where logiciel_cat='".$d_LOGICIEL['logiciel_cat']."'" ;	
		$HIT = mysql_query($sHIT,$connect) or die(mysql_error());
	    $row_HIT = mysql_fetch_object($HIT);
	    
			if ($row_HIT)
				$total = $row_HIT->total;
			else
				$total = 0;
				mysql_free_result($HIT);
	    
		
		//$total contient la valeur, s'il n'a pas pu faire de somme elle contiendra 0 car ca veut dire qu'il n'y avait pas de hits pour la catégorie
		
		//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
			if ($cpt%$nbCols==0){ // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ...  
				echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne  


				// On place chaque élément dans une cellule du tableau  
				echo '<td>'; 
				echo '<FONT COLOR="white"><a href="logiciel.php?cat='.$d_LOGICIEL['logiciel_cat'].'">'.$d_LOGICIEL['logiciel_cat'].'</a> Hits: '.$total.'</FONT>'; // affichage de tout ce qu'on veut dans la cellule  
				echo '</td>';  
				// fin d'une ligne
			if ($cpt%$nbCols==($nbCols-1)){ // on divise le nb d'élément par le nb de colonnes. Si le reste est de ($nbCols-1) ...  
				echo '</tr>'; // ..., on est sur le dernier élément d'une ligne 
				$cpt++; // on incrémente le compteur pour savoir où on en est 
			}  
	}

			// Au cas où ... 
			if ($cpt!=0 && $cpt%$nbCols!=0) { // S'il n'y a pas eu assez de cellules dans la boucle pour finir la ligne ... 
			echo '<td colspan="'.($nbCols - ($cpt%$nbCols) ).'">&nbsp;</td>'; // ... on complète avec une cellule vide de la bonne taille... 
			echo '</tr>'; // ... et on ferme la ligne 
} 

}?>
</table>
<?

}
else{

Posté : 05 oct. 2008, 22:00
par Ryle
tu as ajouté des accolades sur les if() qui ajoutent les <tr>, le problème, c'est que tu ne les as pas fermé aux bonsendroits.... Regarde le code du tuto, s'il n'y a pas d'accolades sur un if, celui-ci ne s'applique qu'à la prochaine instruction :)
   if ($cpt%$nbCols==0) // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ...  
        echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne 

équivaut à
   if ($cpt%$nbCols==0) { // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ...  
        echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne  
   }
Y a aucune ligne en plus à mettre entre les accolades ;)

Posté : 06 oct. 2008, 02:24
par mrarobaz
Merci

J'ai réussi à faire mes listes sur 2 colonnes
A+