Problème affichage sur plusieurs pages
Bonjour,
Voilà j'ai un léger soucis pour finaliser mon travail :
J'ai un fichier *.csv que j'importe par php grâce à un formulaire, j'ai un moteur en php qui fait toutes les opérations nécessaires et me renvoie un tableau d'objets.
Je fais ensuite mes différentes requêtes pour tester et insérer mes éléments dans la base de données.
Seulement je ne dois insérer que les nouvelles lignes du *.csv.
Toutefois(et c'est là que je bloque), je dois afficher les lignes que je viens d'insérer avec un maximum de 10lignes par pages.
Donc lorsque que j'ai 11 entrées par exemple je dois y afficher sur 2 pages...
Mon soucis exact étant que si j'ai plus de ligne que le maximum par page j'ai bien un lien "suite" qui apparaît pour aller sur
la deuxième page seulement toutes les entrées restent tout de même sur la 1ère page, la 2ème page est donc vide et je n'ai pas
le lien "retour" pour revenir sur la 1ère page...
Je vous met un extrait de mon code afin que vous y voyiez plus clair :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151
|
<?php
if(isset($_FILES['monfichier']))
{
foreach ($retour_fonction as $garde)
{
/* ... Echos de tests ...
echo 'ID : '. $garde->ID .'<br />';
echo 'timestamp : '. $garde->tStamp .'<br />';
echo 'periode : '. $garde->fperiode .'<br />';
* ... */
/* ... On construit une requête pour vérifier si la garde existe déjà dans la base de données ... */
$requete_verif = "SELECT ID_pharm, dt_garde, fperiode FROM garde WHERE ID_pharm = $garde->ID AND dt_garde = $garde->tStamp AND fperiode = $garde->fperiode";
$resultat = mysql_query($requete_verif) or die(mysql_error());
$retour = mysql_fetch_assoc($resultat);
/* ... Si la garde n'existe pas dans la base alors on l'insère ... */
/* ... Sinon on ne fait rien ... */
if(!$retour)
{
$requete_insert = "INSERT INTO garde (ID_pharm, dt_garde, fperiode) VALUES('$garde->ID', '$garde->tStamp', '$garde->fperiode')";
$rs = mysql_query($requete_insert) or die(mysql_error());
$requete_boucle = "SELECT * FROM garde WHERE ID_pharm = $garde->ID AND dt_garde = $garde->tStamp AND fperiode = $garde->fperiode";
$res = mysql_query($requete_boucle) or die(mysql_error());
$total = mysql_num_rows($res);
if($total !== 0)
$compte++;
if($class == 'fond_alt')
{
$class = 'fond_norm';
}else
{
$class = 'fond_alt';
}
echo '<tr><td class="'. $class .'">';
echo strftime("%A %d %B %Y", $garde->tStamp);
echo '</td>';
echo '<td class="'. $class .'">';
echo $garde->nom_pharmacie;
echo '</td>';
echo '<td class="'. $class .'">';
switch($garde->fperiode)
{
case 1 :
echo "Matin";
break;
case 2 :
echo "Jour";
break;
case 3 :
echo "Nuit";
break;
}
echo "</td></tr>";
}
else
{
}
}
/* ... GESTION de l'AFFICHAGE PAGE PAR PAGE ... */
$url_prec = '';
$url_suiv = '';
if (!isset($_GET['page']))
{
$page = 1;
}
elseif ($_GET['page'] == 0)
{
$page = 1;
}
else
{
$page = $_GET['page'];
}
$limit = 1;
$modulo = $compte % $limit; // affiche le reste de la division entiere entre $rows et 5
$nbpage = ($compte - $modulo) / $limit;
if ($modulo != 0)
{
$nbpage = $nbpage+1;
}
$cpt = 0;
for ($i = 1; $i <= $nbpage; $i++)
{
if ($page == $i)
{
if($i == 1)
{
$url_prec = '#';
}else
{
$url_prec = 'import.php?'. session_name() .'='. session_id() .'&page='. ($i - 1) . $pass_cwhere;
}
if($i == $nbpage)
{
$url_suiv = '#';
}else
{
$url_suiv = 'import.php?'. session_name() .'='. session_id() .'&page='. ($i + 1) . $pass_cwhere;
}
$breakfor = 1;
}
if(isset($breakfor))
{
if ($breakfor == 1)
{
break;
}
}
$cpt = $cpt + ($limit - 1);
}
$retour_fonction = array_slice($retour_fonction, ($limit * ($page - 1)), $limit);
}
?> |
Si vous pouviez m'aider en me disant ce qui cloche ou comment faire pour m'en sortir je vous en serai reconnaissant...
Merci d'avance.