Problème dans l'affichage de plusieurs page
missihafid
Messages postés
66
Statut
Membre
-
missihafid Messages postés 66 Statut Membre -
missihafid Messages postés 66 Statut Membre -
Bonjour,
Voici mon code qui permet d'afficher les videos de chaque type de l'info.
Ce code ça marche en général bien, sauf que si j'ai plus de 5 enregistrent dans sous categorie il m'affiche les 5, et après si je clique sur suivant ou bien sur page 2 il affiche une page si comme je n'ai pas d'autre enregistrement!
Si je ne trompe pas, le problème c'est dans le lien "1" et "2" , "suivant" etc, il faut qu'il rappelle de l'id des sous categorie "id_cat"cpour qu'il affiche d'autres!!
et merci d'avance
Voici mon code qui permet d'afficher les videos de chaque type de l'info.
Ce code ça marche en général bien, sauf que si j'ai plus de 5 enregistrent dans sous categorie il m'affiche les 5, et après si je clique sur suivant ou bien sur page 2 il affiche une page si comme je n'ai pas d'autre enregistrement!
Si je ne trompe pas, le problème c'est dans le lien "1" et "2" , "suivant" etc, il faut qu'il rappelle de l'id des sous categorie "id_cat"cpour qu'il affiche d'autres!!
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<?php
//session_start();
$catinfo=@$_GET['catinfo'] ;
echo "<h3></br><strong>".$catinfo."</strong></h3></br>";
// Connexion à la base de données
$host = "localhost";
$user = "root";
$pass = "";
$data = "basedonnee";
$connect = mysql_connect($host, $user, $pass)
or die("Connexion au serveur impossible !");
$db = mysql_select_db($data, $connect)
or die("Sélection de la base impossible !");
$sql = "SELECT * FROM categorie,video
where categorie.ID_CAT=video.ID_CAT
and categorie.SOUS_CAT='".$catinfo."'"; // specifier categorie
$parpage = 5; // Nombre d'enregistrements par page à afficher
$total = mysql_query($sql);
$nblignes = mysql_num_rows($total); // Nbre total d'enregistrements
// On calcule le nombre de pages à afficher en arrondissant
// le résultat au nombre supérieur grâce à la fonction ceil()
$nbpages = ceil($nblignes/$parpage);
// On teste en affichant la valeur des variables (facultatif)
// Si une valeur 'limit' est passée par url, on vérifie la validité de
// cette valeur par mesure de sécurité avec la fonction validlimit()
// cette fonction retourne automatiquement le résultat de la requête
$result = validlimit($nblignes,$parpage,$sql);
echo '</br></br>';
//echo '<div class="e2-form">';
echo '<table id="table1"nom_soc >';
echo '<tr><td><center><h3>Titre</h3></center></br> </td><td><center><h3>Description</h3></center> </br></td><td><center><h3>Voir video</h3></center></br></td></tr>';
echo '<tr><td colspan="3" ><hr></td></tr>' ;
// On affiche le résultat de la requête
// On crée donc ici son propre tableau pour lequel on souhaite une pagination
while ($ligne = mysql_fetch_array($result)) {
echo '<tr><td colspan="3" ><hr></td></tr>' ;
echo '<tr><td width="250"><center>'.$ligne["TITRE_VIDEO"].'</center></td><td width="250"><center>'.$ligne["DESCRIPTION_VIDEO"].' '.$ligne["LIEN_VIDEO"].'</center>></td><td><center><a href="accueil.php?page=supprission&code='.$ligne["ID_VIDEO"].'"><img src="images/voir.png"></a></center></td></tr>';
echo '<tr><td colspan="3" ><hr></td></tr>' ;
}
$url="accueil.php?page=info1&limit=";
// Résultat total de la requête $sql
// Menu de pagination que l'on place après la requête
// echo "<div class='pagination'>";
echo pagination($url,$parpage,$nblignes,$nbpages);
// echo "</div>";
echo '</table>';
//echo '</div>';
mysql_free_result($result); // Libère le résultat de la mémoire
function pagination($url,$parpage,$nblignes,$nbpages)
{
// On crée le code html pour la pagination
$html = precedent($url,$parpage,$nblignes); // On crée le lien precedent
// On vérifie que l'on a plus d'une page à afficher
if ($nbpages > 1) {
// On boucle sur les numéros de pages à afficher
for ($i = 0 ; $i < $nbpages ; ++$i) {
$limit = $i * $parpage; // On calcule le début de la valeur 'limit'
$limit = $limit.",".$parpage; // On fait une concaténation avec $parpage
// On affiche les liens des numéros de pages
$html .= "<a href=".$url.$limit.">".($i + 1)."</a> |" ;
}
}
// Si l'on a qu'une page on affiche rien
else {
$html .= "";
}
$html .= suivant($url,$parpage,$nblignes); // On crée le lien suivant
// On retourne le code html
return $html;
}
function validlimit($nblignes,$parpage,$sql)
{
// On vérifie l'existence de la variable $_GET['limit']
// $limit correspond à la clause LIMIT que l'on ajoute à la requête $sql
if (isset($_GET['limit'])) {
$pointer = preg_split('[,]', $_GET['limit']); // On scinde $_GET['limit'] en 2
$debut = $pointer[0];
$fin = $pointer[1];
// On vérifie la conformité de la variable $_GET['limit']
if (($debut >= 0) && ($debut < $nblignes) && ($fin == $parpage)) {
// Si $_GET['limit'] est valide on lance la requête pour afficher la page
$limit = $_GET['limit']; // On récupère la valeur 'limit' passée par url
$sql .= " LIMIT ".$limit.";"; // On ajoute $limit à la requête $sql
$result = mysql_query($sql); // Nouveau résultat de la requête
}
// Sinon on affiche la première page
else {
$sql .= " LIMIT 0,".$parpage.";"; // On ajoute la valeur LIMIT à la requête
$result = mysql_query($sql); // Nouveau résultat de la requête
}
}
// Si la valeur 'limit' n'est pas connue, on affiche la première page
else {
$sql .= " LIMIT 0,".$parpage.";"; // On ajoute la valeur LIMIT à la requête
$result = mysql_query($sql); // Nouveau résultat de la requête
}
// On retourne le résultat de la requête
return $result;
}
function precedent($url,$parpage,$nblignes)
{
// On vérifie qu'il y a au moins 2 pages à afficher
if ($nblignes > $parpage) {
// On vérifie l'existence de la variable $_GET['limit']
if (isset($_GET['limit'])) {
// On scinde la variable 'limit' en utilisant la virgule comme séparateur
$pointer = explode('[,]', $_GET['limit']);
// On récupère le nombre avant la virgule et on soustrait la valeur $parpage
$pointer = $pointer[0]-$parpage;
// Si on atteint la première page, pas besoin de lien 'Précédent'
if ($pointer < 0) {
$precedent = "";
}
// Sinon on affiche le lien avec l'url de la page précédente
else {
$limit = "$pointer,$parpage";
$precedent = "<a href=".$url.$limit.">Précedent</a> | ";
}
}
else {
$precedent = ""; // On est à la première page, pas besoin de lien 'Précédent'
}
}
else {
$precedent = ""; // On a qu'une page, pas besoin de lien 'Précédent'
}
return $precedent;
}
function suivant($url,$parpage,$nblignes)
{
// On vérifie qu'il y a au moins 2 pages à afficher
if ($nblignes > $parpage) {
// On vérifie l'existence de la variable $_GET['limit']
if (isset($_GET['limit'])) {
// On scinde la variable 'limit' en utilisant la virgule comme séparateur
$pointer = preg_split('[,]', $_GET['limit']);
// On récupère le nombre avant la virgule auquel on ajoute la valeur $parpage
$pointer = $pointer[0] + $parpage;
// Si on atteint la dernière page, pas besoin de lien 'Suivant'
if ($pointer >= $nblignes) {
$suivant = "";
}
// Sinon on affiche le lien avec l'url de la page suivante
else {
$limit = "$pointer,$parpage";
$suivant = "<a class='pagination' href=".$url.$limit.">Suivant</a>";
}
}
// Si pas de valeur 'limit' on affiche le lien de la deuxième page
if (@$_GET['limit']== false) {
$suivant = "<a href=".$url.$parpage.",".$parpage.">Suivant</a>";
}
}
else {
$suivant = ""; // On a qu'une page, pas besoin de lien 'Suivant'
}
return $suivant;
}
?>
<br />
<a href="accueil.php" ><img src="images/retour.png" width="70" height="40" /></a>
et merci d'avance
A voir également:
- Problème dans l'affichage de plusieurs page
- Supprimer une page dans word - Guide
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
2 réponses
Je veux ajoute que si je n'utilise pas sous categorie (@$_GET['catinfo']) et j'utilise la table sans restriction il marche bien, sinon il me génère ce problème!!
Aidez moi S'il vous plait
Aidez moi S'il vous plait
Je veux juste me signaler des fautes dans ce code c'est même structure de précédent mais celle ci est plus simple et affiche juste 2 liens une pour page précédente et l'autre pour page suivante:
il m'affiche bien les 3 premiers lignes mais le probléme si je clique sur lien précédent ou suivant?
J'ai utilisé 2 gets pour me recuperer id de categorie et variable $limit!
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<?php
if(!empty($_GET['id_cat'])){
echo "<h3></br><strong>".$_GET['id_cat']."</strong></h3></br>";
// Connexion à la base de données
$host = "localhost";
$user = "root";
$pass = "";
$data = "basedonnee"; // Nommer ici la base de données
$connect = mysql_connect($host, $user, $pass)
or die("Connexion au serveur impossible !");
$db = mysql_select_db($data, $connect)
or die("Sélection de la base impossible !");
$parpage = 3;
$limit = 1;
// On test si la variable existe
if (isset($_GET['limit'])) {
// On test si c'est un entier
if(is_int($_GET['limit'])) {
$limit = $_GET['limit'];
}
}
$offset = ($limit - 1) * $parpage ;
$sql = "SELECT * FROM categorie,video
where categorie.ID_CAT=video.ID_CAT
and categorie.ID_CAT='".$_GET['id_cat']."'
order by rand()
LIMIT $offset, $parpage
"; // Requête initiale (à compléter si nécessaire)
$sql1="SELECT distinct categorie.ID_CAT,categorie.SOUS_CAT FROM categorie,video
where categorie.ID_CAT=video.ID_CAT
";
// Nombre d'enregistrements par page à afficher
$result = mysql_query($sql);
if(mysql_query( $sql, $connect )=== FALSE) {
die(mysql_error()); // TODO: better error handling
}
echo '</br></br>';
//echo '<div class="e2-form">';
echo '<table id="table1" >';
echo '<tr><td><center><h3>Titre</h3></center></br> </td><td><center><h3>Description</h3></center> </br></td><td><center><h3>Voir video</h3></center></br></td></tr>';
echo '<tr><td colspan="3" ><hr></td></tr>' ;
// On affiche le résultat de la requête
// On crée donc ici son propre tableau pour lequel on souhaite une pagination
while ($ligne = mysql_fetch_array($result)) {
echo '<tr><td colspan="3" ><hr></td></tr>' ;
echo '<tr><td width="250"><center>'.$ligne["TITRE_VIDEO"].'</center></td><td width="250"><center>'.$ligne["DESCRIPTION_VIDEO"].' '.$ligne["LIEN_VIDEO"].'</center>></td><td><center><a href="accueil.php?page=voirvideo&code='.$ligne["ID_VIDEO"].'"><img src="images/voir.png"></a></center></td></tr>';
echo '<tr><td colspan="3" ><hr></td></tr>' ;
}
// echo "</div>";
echo '</table>';
//if (isset($_GET['limit'])) {
?>
<a href="accueil.php?page=info11&limit=<?php echo $limit + 1 ?>">Page suivante</a>
<a href="accueil.php?page=info11&limit=<?php echo $limit - 1 ?>">Page précédente</a>
<?php // }
}
else echo "Pas de videos</br></br>"; ?>
</br>
<a href="accueil.php" ><img src="images/retour.png" width="70" height="40" style=" float:right" /></a>
il m'affiche bien les 3 premiers lignes mais le probléme si je clique sur lien précédent ou suivant?
J'ai utilisé 2 gets pour me recuperer id de categorie et variable $limit!