PHP Variables de SESSION / Souci !

Fermé
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 29 sept. 2008 à 11:46
dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 - 29 sept. 2008 à 12:56
Bonjour,
je souhaiterai mettre en Variable de Session des checkbox que je coche tout au long de ma pagination. (EXEMPLE , 3 dan la page 1 , 12 dans la page 2 etc ... )

Le seul souci c'est que je ne sais pas faire ...
Voici liste.php la page qui affiche toute la liste avec toutes les checkbox et pagination.php la fonction pagination

liste.php
$i=0; 
$timeout = 604800;
$heure = time();

$sql5 = "SELECT * FROM membres  WHERE id = '".$id."'  "; 
$result5 = mysql_query( $sql5) or die( "Erreur : " . mysql_error() );



if ($credit == '0')
{
while($row = mysql_fetch_array($result)) 
{ 

	
				echo '<tr>'; 
				echo '<td width="80" bgcolor="#e8e2e2">'.$row["id"].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row["departement"].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row["commentaires"].'</td>'; 
echo '<td bgcolor="#e8e2e2">'.$row["clic"]. ' fois </td>'; 				
				
				echo '</tr>'; 
} 
}
else
{
while($row = mysql_fetch_array($result)) 
{ 

	
				echo '<tr>'; 
				echo '<td width="80" bgcolor="#e8e2e2">'.$row["id"].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row["departement"].'</td>'; 
				echo '<td bgcolor="#e8e2e2">'.$row["commentaires"].'</td>'; 
echo '<td bgcolor="#e8e2e2">'.$row["clic"]. ' fois </td>'; 				
				echo '<td><input type="checkbox" name="choix[]" value="'.$row["id"].'">acheter</td>';
				echo '</tr>'; 
} 
}








echo '</table>'."\n"; 

echo "<input type='submit' value='Commander Devis' /></form>"; 
echo '</font>';
// fin du tableau. 

} 
else 
{
echo 'Pas d\'enregistrements dans cette table...'; 
}
echo '<center>'."\n"; 
echo pagination($total_pages,$page_courante);
echo '</center>'."\n"; 



et pagination.php


function pagination($total,$courante)
{
    /* on définit quelques variables dont on aura besoin */
    $prec = $courante - 1; // numéro de la page précédente
    $suiv = $courante + 1; // numéro de la page suivante
    $avder = $total - 1; // avant dernière page
    $adjacentes = 3; // nombre de pages à afficher de chaque côté de la page courante


    /*
    On commence la pagination que l'on stocke dans la variable à retourner
    pagination() pourra ainsi être appelée plusieurs fois, en haut et en bas d'une page par exemple
    */

    $pagination = ""; // s'il n'ya pas au moins deux pages, on n'affiche rien

    if($total > 1) // il y a au moins deux pages
    {
        
		
		
		
		
		
		
		// on commence par stocker dans $pagination le <div> d'ouverture
        $pagination .= "<div class=\"pagination\">\n";


        // on affiche d'abord le bouton précédent
        if ($courante == 2) // si on est sur la page 2, le bouton précédent renvoit sur la page initiale, il est inutile de mettre ?page=1 sinon on se retrouve avec un duplicate content
            $pagination.= "<a href=\"liste.php\">« préc</a>";
        elseif ($courante > 2) // si la page actuelle est supérieure à 2 le bouton précédent renvoit sur la page dont le numéro est immédiatement inférieur
            $pagination.= "<a href=\"liste.php?page=$prec&total_pages=$total\">« préc</a>";
        else // sinon on est sur la page 1 : on désactive le bouton précédent. on est nécessairement sur la page 1 car on a fait le traitement des pages dans liste.php, pas besoin de mettre elseif ($courante==1)
            $pagination.= "<span class=\"desactive\">« préc</span>";


        /**
        On affiche maintenant les pages. On cherchera à afficher au maximum 11 numéros de page en général, et 12 dans le cas 1 où il n'y a pas de troncature :
        - dans un 1er cas, il n'y a pas assez de pages  pour "tronquer la pagination" : on affiche toutes les pages
        - dans le 2ème cas, il y a trop de pages : la troncature s'effectue selon la page sur laquelle on est positionnée
        */

        // CAS 1 : il n'y a pas assez de pages pour tronquer, on les affiche toutes (voir figure 1)
        if ($total < 7 + ($adjacentes * 2))
        {
            /*
            on AJOUTE la page 1. On la traite séparément pour avoir liste.php au lieu de liste.php?page=1 et ainsi éviter le duplicate content
            cette ligne équivaut à :
            if ($courante == 1)
                $pagination.= "<span class=\"courante\">1</span>";
            else
                $pagination.= "<a href=\"liste.php\">1</a>";
             */
            $pagination.= ($courante == 1) ? "<span class=\"courante\">1</span>" : "<a href=\"liste.php\">1</a>";

            // pour les pages restantes on utilise une simple boucle for
            for ($compteur = 2; $compteur <= $total; $compteur++)
            {
                if ($compteur == $courante) // on affiche la page courante différemment pour la mettre en évidence
                    $pagination.= "<span class=\"courante\">$compteur</span>";
                else
                    $pagination.= "<a href=\"liste.php?page=$compteur&total_pages=$total\">$compteur</a>";
            }
        }

        // CAS 2 : on a assez de pages pour tronquer en fonction de la page actuelle
        elseif($total > 5 + ($adjacentes * 2))
        {
            /*
            on est placé dans la partie proche des premières pages, on tronque donc la fin de la pagination.
            l'affichage sera 9 pages à gauche ... 2 pages à droite (voir figure 2)
            */
            if($courante < 1 + ($adjacentes * 2))
            {
                // on affiche la page 1 comme vu précédemment
                $pagination.= ($courante == 1) ? "<span class=\"courante\">1</span>" : "<a href=\"liste.php\">1</a>";

                // puis les huit pages suivantes
                for ($compteur = 2; $compteur < 4 + ($adjacentes * 2); $compteur++)
                {
                    if ($compteur == $courante)
                        $pagination.= "<span class=\"courante\">$compteur</span>";
                    else
                        $pagination.= "<a href=\"liste.php?page=$compteur&total_pages=$total\">$compteur</a>";
                }

                // les ... pour marquer la troncature
                $pagination.= " ... ";

                // et enfin les deux dernières pages
                $pagination.= "<a href=\"liste.php?page=$avder&total_pages=$total\">$avder</a>";
                $pagination.= "<a href=\"liste.php?page=$total&total_pages=$total\">$total</a>";
            }

            /*
            on est placé dans la partie centrale de notre pagination, on tronque donc le début et la fin de la pagination.
            l'affichage sera 2 pages à gauche ... 7 pages au centre ... 2 pages à droite (voir figure 3)
            */
            elseif($total - ($adjacentes * 2) > $courante && $courante > ($adjacentes * 2))
            {
                // on affiche les deux premières pages
                $pagination.= "<a href=\"liste.php\">1</a>";
                $pagination.= "<a href=\"liste.php?page=2\">2</a>";

                // les ... pour marquer la troncature
                $pagination.= " ... ";

                // puis sept pages : les trois précédent la page courante, la page courante, puis les trois lui succédant
                for ($compteur = $courante - $adjacentes; $compteur <= $courante + $adjacentes; $compteur++)
                {
                    if ($compteur == $courante)
                        $pagination.= "<span class=\"courante\">$compteur</span>";
                    else
                        
						$pagination.= "<a href=\"liste.php?page=$compteur&total_pages=$total\">$compteur</a>";
                }

                // les ... pour marquer la troncature
                $pagination.= " ... ";

                // et enfin les deux dernière spages
                $pagination.= "<a href=\"liste.php?page=$avder&total_pages=$total\">$avder</a>";
                $pagination.= "<a href=\"liste.php?page=$total&total_pages=$total\">$total</a>";
            }

            /*
            sinon on est placé dans la partie de droite, on tronque donc le début de la pagination.
            l'affichage sera 2 pages à gauche ... 9 pages à droite (voir figure 4)
            */
            else
            {
                // on affiche les deux premières pages
                $pagination.= "<a href=\"liste.php\">1</a>";
                $pagination.= "<a href=\"liste.php?page=2\">2</a>";

                // les ... pour marquer la troncature
                $pagination.= " ... ";

                // et enfin les neuf dernières pages
                for ($compteur = $total - (2 + ($adjacentes * 2)); $compteur <= $total; $compteur++)
                {
                    if ($compteur == $courante)
                        $pagination.= "<span class=\"courante\">$compteur</span>";
                    else
                        $pagination.= "<a href=\"liste.php?page=$compteur&total_pages=$total\">$compteur</a>";
                }
            }
        }

        // pour finir on affiche le bouton suivant
        if ($courante < $compteur - 1)
            $pagination.= "<a href=\"liste.php?page=$suiv&total_pages=$total\">suiv »</a>\n";
        else
            $pagination.= "<span class=\"desactive\">suiv »</span>\n";
        $pagination.= "</div>\n";
    }

    // et on retourne $pagination au programme appelant la fonction
    return ($pagination);



Merci de m'aider a me sortir cette épine du pied !

1 réponse

dubuducu Messages postés 391 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 19 mai 2010 4
29 sept. 2008 à 12:56
Personne ne voit ? excusez-moi mais ce souci me prends vraiment la tete
-1