Problème dans l'affichage de plusieurs page
missihafid
Messages postés
59
Date d'inscription
Statut
Membre
Dernière intervention
-
missihafid Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
missihafid Messages postés 59 Date d'inscription Statut Membre Dernière intervention -
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
- Numéro de page word - 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!