pagination
Posté : 02 févr. 2011, 17:35
Bonjour à tous
J'ai un souci depuis deux jours, je ne parviens pas a faire la pagination
En fait je gere facilement lorsqu'il me faut afficher le contenu d'une table simplement
mais dans le cas présent il est question d'afficher une partie des élement de la table ainsi que certains liens sur chaque ligne.
le plus dur pour moi c'est surtout au niveau de l'interpretation du code car c'est une application que je dois améliorer.
le code est structuré comme suis:
on a un fichier SearchEvt.php dont le code est le suivant
//------------------------------------------------------
<?php
//début de la requete sql
$req = "select e.id, e.type, e.titre, e.lieu, e.debut, e.region, e.active, e.dateVariable, e.latence";
$from = "from evt_rec e";
$where = "where e.debut + interval e.latence day>=CURRENT_DATE()-1 ";
//mots clés
if(!$oper_cles){
$oper_cles="and";
}
if($cles){
$ClauseWhere = 1;
$TabCles = explode(' ', $cles);
$NbCles = count($TabCles);
$cle = $TabCles[0];
$cle = majuscule($cle);
$where .= " $oper_cles cles like '%$cle%'";
for($i=1; $i<$NbCles; $i++){
$cle = $TabCles[$i];
$cle = majuscule($cle);
$where .= " $oper_cles cles like '%$cle%'";
}
}
if($cat){
$from .= ", evt_cat ec";
$where .= " and ec.evt=e.id and ec.cat='$cat'";
}
if($aValider){
$where .= " and (e.active is NULL or e.active=0 or e.dateVariable=1) and e.debut < current_date()+ interval 90 day ";
$aValider = FALSE;
}
$req .= " $from $where order by e.debut";
echo "<font size=-1> req = " . $req . "<br>";
$res = mysql_query($req, $connexion);
$reponse = "<table border=0 cellspacing=10>\n";
while($evt = mysql_fetch_row($res)){
$reponse .= "<tr>";
$reponse .= "<td><font size=-1>".$evt[1]."</td>";
//$reponse .= "<td><font size=-1><a href=\"../calendrier/detail.php?id=".$evt[0]."\" target=_blank>".$evt[2]."</a> </font></td>";
$reponse .= "<td><font size=-1><a href=\"../detail.php?id=".$evt[0]."\" target=_blank>".$evt[2]."</a> </font></td>";
$reponse .= "<td><font size=-1>".$evt[3]."</td>";
$reponse .= "<td><font size=-1>".$evt[4]."</td>";
$reponse .= "<td><font size=-1>".$evt[5]."</td>";
$reponse .= "<td><font size=-1><a href=\"editEvt.php?id=".$evt[0]."\">modifier</a> </font></td>";
if($evt[6] != 1){
$reponse .= "<td><font size=-1><a href=\"activeEvt.php?id=".$evt[0]."\">activer</a> </font></td>";
}
//$reponse .= "<td><font size=-1><a href=\"delateEvtphp?id=".$evt[0]."\">supprimer</a> </font></td>";
//if( $evt[2] ) { $reponse .= "<td><font size=-1> <a href=\"exercices/corriges/" . $evt[2] . "\">corrigé</a></font></td>"; }
$reponse .= "</tr>\n";
}
$reponse .= "</table>\n";
?>
//---------------------------------------------------------------------------------------
et le fichier index qui gere l'affichage et où on a simplement appelé le tableau en faisant echo"$reponse"
comment est ce que je pourrai gerer cela. j'aimerai afficher 5 élements par page
merci
J'ai un souci depuis deux jours, je ne parviens pas a faire la pagination
En fait je gere facilement lorsqu'il me faut afficher le contenu d'une table simplement
mais dans le cas présent il est question d'afficher une partie des élement de la table ainsi que certains liens sur chaque ligne.
le plus dur pour moi c'est surtout au niveau de l'interpretation du code car c'est une application que je dois améliorer.
le code est structuré comme suis:
on a un fichier SearchEvt.php dont le code est le suivant
//------------------------------------------------------
<?php
//début de la requete sql
$req = "select e.id, e.type, e.titre, e.lieu, e.debut, e.region, e.active, e.dateVariable, e.latence";
$from = "from evt_rec e";
$where = "where e.debut + interval e.latence day>=CURRENT_DATE()-1 ";
//mots clés
if(!$oper_cles){
$oper_cles="and";
}
if($cles){
$ClauseWhere = 1;
$TabCles = explode(' ', $cles);
$NbCles = count($TabCles);
$cle = $TabCles[0];
$cle = majuscule($cle);
$where .= " $oper_cles cles like '%$cle%'";
for($i=1; $i<$NbCles; $i++){
$cle = $TabCles[$i];
$cle = majuscule($cle);
$where .= " $oper_cles cles like '%$cle%'";
}
}
if($cat){
$from .= ", evt_cat ec";
$where .= " and ec.evt=e.id and ec.cat='$cat'";
}
if($aValider){
$where .= " and (e.active is NULL or e.active=0 or e.dateVariable=1) and e.debut < current_date()+ interval 90 day ";
$aValider = FALSE;
}
$req .= " $from $where order by e.debut";
echo "<font size=-1> req = " . $req . "<br>";
$res = mysql_query($req, $connexion);
$reponse = "<table border=0 cellspacing=10>\n";
while($evt = mysql_fetch_row($res)){
$reponse .= "<tr>";
$reponse .= "<td><font size=-1>".$evt[1]."</td>";
//$reponse .= "<td><font size=-1><a href=\"../calendrier/detail.php?id=".$evt[0]."\" target=_blank>".$evt[2]."</a> </font></td>";
$reponse .= "<td><font size=-1><a href=\"../detail.php?id=".$evt[0]."\" target=_blank>".$evt[2]."</a> </font></td>";
$reponse .= "<td><font size=-1>".$evt[3]."</td>";
$reponse .= "<td><font size=-1>".$evt[4]."</td>";
$reponse .= "<td><font size=-1>".$evt[5]."</td>";
$reponse .= "<td><font size=-1><a href=\"editEvt.php?id=".$evt[0]."\">modifier</a> </font></td>";
if($evt[6] != 1){
$reponse .= "<td><font size=-1><a href=\"activeEvt.php?id=".$evt[0]."\">activer</a> </font></td>";
}
//$reponse .= "<td><font size=-1><a href=\"delateEvtphp?id=".$evt[0]."\">supprimer</a> </font></td>";
//if( $evt[2] ) { $reponse .= "<td><font size=-1> <a href=\"exercices/corriges/" . $evt[2] . "\">corrigé</a></font></td>"; }
$reponse .= "</tr>\n";
}
$reponse .= "</table>\n";
?>
//---------------------------------------------------------------------------------------
et le fichier index qui gere l'affichage et où on a simplement appelé le tableau en faisant echo"$reponse"
comment est ce que je pourrai gerer cela. j'aimerai afficher 5 élements par page
merci