[RESOLU] 4 resultats par ligne

Mammouth du PHP | 725 Messages

19 sept. 2013, 15:23

Bonjour,

J'ai utilise le module pour afficher 4 resultats par ligne, en vain, ca marche avec 2 resultats:
<?php
$list = array(0,1,2,3,4,5,6,7,8);         
         
         
    $i=0;
    $per=4;
    echo '<table width="2">';
	foreach($list as $k=>$v)
	{
            //open row +first cell
   if($k%$per==0){
           echo '<tr><td>';
           echo $k;
           echo '</td>';
   
   } else {
       echo '<td>'.$k.'</td></tr>';
   }
   
         //$k++;
	} // end foreach
        echo '</table>';
?>
Merci pour votre coup de main

ebn
Eléphanteau du PHP | 16 Messages

19 sept. 2013, 16:11

en l’occurrence là dès que tu n'est pas divisible par 4 tu fermes la ligne.

ebn
Eléphanteau du PHP | 16 Messages

19 sept. 2013, 16:20

par exemple comme ça :
<?php
$list = array(0,1,2,3,4,5,6,7,8);         
        
         
    $i=0;
    $per=4;
    echo '<table>';

        foreach($list as $k=>$v)
        {
            //open row +first cell

   if($k%$per==0){
		if($k=!0){
			echo '</tr>';	  
			}
           echo '<tr><td>';
           echo $k;
           echo '</td>';

   } else {
       echo '<td>'.$k.'</td>';

   } 
         //$k++;
        } // end foreach
        echo '</tr></table>';
?>
sinon de manière générale évite les echo à répétition:
<?php
$list = array(0,1,2,3,4,5,6,7,8);         
$out='';        
         
    $i=0;
    $per=4;
    echo '<table>';

        foreach($list as $k=>$v)
        {
            //open row +first cell

   if($k%$per==0){
		if($k=!0){
			$out.= '</tr>';	  
			}
           $out.= '<tr><td>';
           $out.= $k;
           $out.= '</td>';

   } else {
       $out.= '<td>'.$k.'</td>';

   } 
         //$k++;
        } // end foreach
        $out.= '</tr></table>';

echo $out;
?>

Mammouth du PHP | 725 Messages

20 sept. 2013, 16:11

merci ebn, voici le resultat:

Code : Tout sélectionner

1 1 2 3 1 5 6 7 1
je devais avoir 2 lignes :(

Mammouth du PHP | 725 Messages

22 sept. 2013, 16:41

merci a vous tous:
<?php
$colorsList = array(
'000000', '808080', 'C0C0C0', '0000A0', '0000FF', '00FFFF', 'ADD8E6', '800080', 'B93B8F', 'F9B7FF', 'FF00FF', 'FF0000', '800000', 'A52A2A', 'D16587', 'FFFF00', 'FDD017', 'FFA500', 'F87431', 'AF7817', 'B1FB17', '00FF00', 'C9BE62', '008000', 
);

$perRow = 5;

echo '<table width="100%" cellpadding="10" cellspacing="5" border="2">';
    foreach($colorsList as $k=>$v){
        
        // check if modulo of k is 0 and k different than 0
        // last verification will prevent from closing a row </tr> after <table>
        if((($k%$perRow) == 0) AND ($k!=0)) {
            echo '</tr>';
            echo '<tr>';
            echo '<td bgcolor="'.$v.'">';
            echo $v;
            echo '</td>';
        }
        // now if k == 0 we need to open the row will columns
        elseif($k==0){
                echo '<tr>';
                echo '<td bgcolor="'.$v.'">';
                echo $v;
                echo '</td>';

        // otherwise lose columns
        } else {
            echo '<td bgcolor="'.$v.'">';
            echo $v;
            echo '</td>';
        }
    }
    echo '</tr>';
    echo '</table>';
?>