Tableau dans une boucle

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Tableau dans une boucle

par mazflo007 » 15 juin 2006, 13:10

Merci c'est bon j'ai reussi

par jpaul » 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)

par mazflo007 » 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

Re: Tableau dans une boucle

par jpaul » 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 ?

par mazflo007 » 15 juin 2006, 07:50

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

par jpaul » 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>";

Tableau dans une boucle

par mazflo007 » 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