problème d'affichage d'un array sur plusieurs pages

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 : problème d'affichage d'un array sur plusieurs pages

par lakawet » 12 sept. 2008, 14:24

donc si j'ai bien compris, je fais un truc du genre :

Code : Tout sélectionner

$affichage=($p-1)*18; $tab_toto = array($toto); $aff_toto = $tab_toto[$affichage]; echo''.$aff_toto.'';
mais je suis pas sure de moi

merci

par TiFred » 12 sept. 2008, 13:05

Salut,

Tu joues avec différentes variables :
* la 1e biensûr sera pour aller de 1 à 18 sur chaque page
* une 2e, par ex $numpage, pour tes numéros de pages

Comme ça, quand tu affiches une page tu fais :
($numpage-1)*18 ce qui correspond à la première donnée à afficher
auquel tu ajoutes ta 1e variable pour afficher chaque ligne

problème d'affichage d'un array sur plusieurs pages

par lakawet » 12 sept. 2008, 12:29

bonjour,

Voila mon petit souci, j'ai créer une pagination en limitant à 18 enregistrement par page ( c'est un petit soft de compta ). le probleme c'est que les totos de chaque enregistrement sont calculés et stockés dans un tableau (array).
Mais comment faire pour que le array stop l'affichage à 18 enregistrements à la premiere page et que lorsque je passe à la page 2 ou 3 ou 4.... le pointeur du tableau commence bien en ajoutant bien les 18 à c haque fois page 1 = 18, page 2 = 36, page 3 = 54 etc...

je vous met mon code :

Code : Tout sélectionner

<?php $p=$_GET['p']; /* Appel du fichier contenant la fonction pagination() */ include('paginate.php'); /* Connexion à la BDD (se place normalement dans un fichier externe) */ define('DB_HOST', 'localhost'); define('DB_USER', 'root'); define('DB_PASSWORD', ''); define('DB_NAME', 'intracompta'); $dbc = @mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); if (!$dbc) { trigger_error('Connexion à la BDD impossible : ' . mysqli_connect_error() ); exit(); } /* Calcul du nombre total d'entrées $total dans la table posts */ $res = mysqli_query($dbc, 'SELECT COUNT(*) FROM compte'); $row = mysqli_fetch_row($res); $total = $row[0]; /* Libération du résultat */ mysqli_free_result($res); /* Déclaration des variables */ $epp = 18; // nombre d'entrées à afficher par page (entries per page) $countp = ceil($total/$epp); // calcul du nombre de pages $countp (on arrondit à l'entier supérieur avec la fonction ceil() ) /* Récupération du numéro de la page courante depuis l'URL avec la méthode GET */ if(!isset($_GET['p']) || !is_numeric($_GET['p']) ) // si $_GET['p'] n'existe pas OU $_GET['p'] n'est pas un nombre (petite sécurité supplémentaire) $current = 1; // la page courante devient 1 else { $page = intval($_GET['p']); // stockage de la valeur entière uniquement if ($page < 1) $current=1; // cas où le numéro de page est inférieure 1 : on affecte 1 à la page courante elseif ($page > $countp) $current=$countp; //cas où le numéro de page est supérieur au nombre total de pages : on affecte le numéro de la dernière page à la page courante else $current=$page; // sinon la page courante est bien celle indiquée dans l'URL } /* $start est la valeur de départ du LIMIT dans notre requête SQL (est fonction de la page courante) */ $start = ($current * $epp - $epp); /* Récupération des données à afficher pour la page courante */ $qry = "SELECT * FROM compte ORDER BY id DESC LIMIT $start, $epp"; $res = @mysqli_query($dbc, $qry); $toto = 2507.85; if ($res) { /* Affichage des données */ echo '<table width="100%" border="0" cellpadding="0" cellspacing="3">'; while($item = mysqli_fetch_array($res)) { $encaisse = $item['encaisse']; $id = $item['id']; $id2 = $id+1; $credit =$item['credit']; $debit =$item['debit']; $info = $item['info']; $qry2 = "SELECT * FROM compte WHERE id=$id2 ORDER BY id DESC LIMIT $start, $epp"; $res2 = @mysqli_query($dbc, $qry2); while($item2 = mysqli_fetch_array($res2)) { $credit2 =$item2['credit']; $debit2 =$item2['debit']; if ( $debit2 != 0.00 ) { $toto = $toto+$debit2; } else { $toto = $toto-$credit2; } $tab_toto = array($toto); } echo '<tr bgcolor="#CCCCCC">'; echo '<td width="17%" align="left" valign="middle"><span class="Style8">'.substr($item['date'],8,2)."-".substr($item['date'],5,2)."-".substr($item['date'],0,4).'</span><br></td>'; echo '<td width="25%" align="left" valign="middle"><span class="Style8">'.$item['emetteur'].'</span><br></td>'; if ( $encaisse == 0 ) { echo '<td width="10%" align="center" valign="middle"><span class="Style17">';if ( $credit != 0.00 ) { echo''.$item['credit'].''; }echo'</span><br></td>'; } else { echo '<td width="10%" align="center" valign="middle"><span class="Style18">';if ( $credit != 0.00 ) { echo''.$item['credit'].''; }echo'</span><br></td>'; } if ( $encaisse == 0 ) { echo '<td width="10%" align="center" valign="middle"><span class="Style17">';if ( $debit != 0.00 ) { echo''.$item['debit'].''; }echo'</span><br></td>'; } else { echo '<td width="10%" align="center" valign="middle"><span class="Style18">';if ( $debit != 0.00 ) { echo''.$item['debit'].''; }echo'</span><br></td>'; } echo '<td width="18%" align="center" valign="middle"><span class="Style8">'.$tab_toto['0'].'</span><br></td>'; if ( $encaisse == 0 ) { echo'<td align="center" valign="middle"><span class="Style17"><a href="encaisse.php?encaisse=1&id='.$id.'"><img src="images/euro.gif" width="14" height="18" alt="encaisser" border="0"/></a> - '; if ( $info!=NULL ) { echo'<A href="#"><img src="images/info.gif" width="18" height="18" alt="'.$info.'" border="0"/></a> - '; } echo'<a href="modifier.php?id='.$id.'&p='.$p.'"><img src="images/modif.gif" width="18" height="18" alt="modifier" border="0"/></a></span><br></td></tr>'; } else{ echo'<td align="center" valign="middle"><span class="Style17">'; if ( $info!=NULL ) { echo'<A href="#"><img src="images/info.gif" width="18" height="18" alt="'.$info.'" border="0"/></a> -'; } echo'<a href="modifier.php?id='.$id.'&p='.$p.'"><img src="images/modif.gif" width="18" height="18" alt="modifier" border="0"/></a></span><br></td></tr>'; } echo'</tr>'; } echo '</table>'; /* Libération du résultat */ mysqli_free_result($res); } else echo mysqli_error($dbc); echo paginate($_SERVER['PHP_SELF'], '?p=', $countp, $current); ?>
merci pour votre aide :)