Tableau dans une boucle

Eléphant du PHP | 101 Messages

14 juin 2006, 21:08

Bonjour je voudrais mettre un tableau dans une boucle.
Je veut a chaque nouvelle donnée = une colonne mais le probleme c'est qu'au bout de 6 collones j'aimerais qu'il est une nouvelle ligne
Comment faire
Merci

Eléphant du PHP | 451 Messages

14 juin 2006, 23:03

Tien ce petit bout de code peut probablement t'aider (ca utilise modulo)
indice +1 (car on part de 0) donc
si (indice+1) % 6 est égal à 0 on fait une nouvelle ligne...
$tabl=array("truc","machin","chose","bidule","schmoldu","zinzin","bignou","bazard",1,2,3,4,5,6,7,8,9);
echo "<pre>";
print_r($tabl);
echo "</pre>";
echo "<TABLE BORDER=1>";
echo "<TR>";
for ($i=0; $i<count($tabl); $i++) {
	echo "<TD>".$tabl[$i]."</TD>";
	if (($i+1) % 6 == 0) {
		// nouvelle ligne
		echo "</TR><TR>";
	}
}
while (($i) % 6 != 0) {
	// on termine le tableau
	echo "<TD>-</TD>";
	$i++;
}
echo "</TR>";
echo "</TABLE>";
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 101 Messages

15 juin 2006, 07:50

qu 'est ce que je dois remplacer par mes valeurs :?:

Eléphant du PHP | 451 Messages

15 juin 2006, 09:31

Bonjour je voudrais mettre un tableau dans une boucle.
Je veut a chaque nouvelle donnée = une colonne mais le probleme c'est qu'au bout de 6 collones j'aimerais qu'il est une nouvelle ligne
Comment faire
Merci
J'ai compris que tu voulais afficher un tableau php dans un tableau html mais ce n'est peut être pas le cas...
D'où viennent les données ?
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 101 Messages

15 juin 2006, 09:50

Voici ma requete que j'avais commencer
<?php
function displayNextPreviousButtons($limite,$total,$nb,$page) {
$limiteSuivante = $limite + $nb;
$limitePrecedente = $limite - $nb;
echo  '<table align="center"><tr align="center">'."\n";
if($limite != 0) {
        echo  '<td valign="top" >'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="Précédents">'."\n";
        echo  '<input type="hidden" value="'.$limitePrecedente.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
}
if($limiteSuivante < $total) {
        echo  '<td valign="top">'."\n";
        echo  '<form action="'.$page.'" method="post">'."\n";
        echo  '<input type="submit" value="Suivants">'."\n";
        echo  '<input type="hidden" value="'.$limiteSuivante.'" name="limite">'."\n";
        echo  '</form>'."\n";
        echo  '</td>'."\n";
            
}
echo  '</tr></table>'."\n";
}
function affichePages($nb,$page,$total) {
        $nbpages=ceil($total/$nb);
        $numeroPages = 1;
        $compteurPages = 1;
        $limite  = 0;
        echo '<table border = "0" align="center"><tr>'."\n";
        while($numeroPages <= $nbpages) {
        echo '<td align="center"><a href = "'.$page.'?limite='.$limite.'">'.$numeroPages.'</a></td>'."\n";
        $limite = $limite + $nb;
        $numeroPages = $numeroPages + 1;
        $compteurPages = $compteurPages + 1;
            if($compteurPages == 10) {
            $compteurPages = 1;
            echo '<br>'."\n";
            }
        }
        echo '</tr></table>'."\n";
}
?>
<? $nombre = 5;  

// si limite n'existe pas on l'initialise à zéro

if (!$limite) $limite = 0; 

// on cherche le nom de la page.    

$path_parts = pathinfo($_SERVER['PHP_SELF']);

$page = $path_parts["basename"];



//=========================================    

// connection à la DB

//=========================================

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );

mysql_select_db($db) or die ('Erreur :'.mysql_error());



//=========================================    

// requête SQL qui compte le nombre total 

// d'enregistrements dans la table.

//=========================================

$select = 'SELECT count(id) FROM jeux WHERE categorie="action" ';

$result = mysql_query($select,$link)  or die ('Erreur : '.mysql_error() );

$row = mysql_fetch_row($result);

$total = $row[0];

    

//=========================================

// vérifier la validité de notre variable 

// $limite;

//=========================================

$verifLimite= verifLimite($limite,$total,$nombre);

// si la limite passée n'est pas valide on la remet à zéro

if(!$verifLimite)  {

    $limite = 0;

}

//=========================================

// requête SQL qui ne prend que le nombre 

// d'enregistrement necessaire à l'affichage.

//=========================================

$select = 'SELECT * FROM jeux  WHERE categorie="action" ORDER BY id ASC limit '.$limite.','.$nombre;

$result = mysql_query($select,$link)  or die(mysql_error());

    

//=========================================    

// si on a récupéré un resultat on l'affiche.
                                
//=========================================

if($total) {

    echo '<div style="text-align: center"><table  width=100% class="tableaujeux"><tr>'."\n";
    for($row = 0; $row == mysql_fetch_array($result); $row++) 
    { 
        if ($row > 0 && $row% 6 == 0)
                 echo "</tr>\n<tr>\n";
        echo "\t".'<td><a href="http://karement.be/jeux/page.php?id='. $row['id'].'&categorie='. $row['categorie'].'&noter=non>'. $row['nom'].'</a>'.
            '<a href="http://karement.be/jeux/page.php?id='. $row['id'].'&categorie='. $row['categorie'].'&noter=non">'.
            '<img src=http://karement.be/jeux/'. $row['categorie'].'/images/'. $row['id'].'.gif widht="100" height="100"></td>'."\n";
    }
    echo '</tr></table></div>'."\n";
}

else echo 'Pas d\'enregistrements dans cette table...';

mysql_free_result($result); 




//=========================================    

// si le nombre d'enregistrement à afficher .

// est plus grand que $nombre 

//=========================================

if($total > $nombre) {

    // affichage des liens vers les pages

    affichePages($nombre,$page,$total);

    // affichage des boutons

    displayNextPreviousButtons($limite,$total,$nombre,$page);

}

//récupération de $limite

    if(isset($_GET['limite'])) 

        $limite=$_GET['limite'];
    else   $limite=0;


function verifLimite($limite,$total,$nombre) {

    // je verifie si limite est un nombre.

    if(is_numeric($limite)) {

        
// si $limite est entre 0 et $total, $limite est ok

        // sinon $limite n'est pas valide.

        if(($limite >=0) && ($limite <= $total) && (($limite%$nombre)==0)) {

            // j'assigne 1 à $valide si $limite est entre 0 et $max

            $valide = 1;

        }    

        else {

            // sinon j'assigne 0 à $valide

            $valide = 0;

        }

    }

    else {

            // si $limite n'est pas numérique j'assigne 0 à $valide

            $valide = 0;

    }

// je renvois $valide

return $valide;

}?>
Mais cette requete affiche juste le numero des pages

Eléphant du PHP | 451 Messages

15 juin 2006, 11:27

Ben tu es sur la bonne voie, ton code que fait-il ?
Qu'est ce qui ne va pas ?

Tu as codé :
if ($row > 0 && $row% 6 == 0) 
Moi j'ai fait :
if (($i+1) % 6 == 0) 
essaye :
if (($row+1) % 6 == 0)
Jpaul
J'essaye d'aider : parfois je fais des erreurs, on me les corrige et j'apprends un peu plus. Super ce forum :)

Eléphant du PHP | 101 Messages

15 juin 2006, 13:10

Merci c'est bon j'ai reussi