IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Affichage page par page


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut Affichage page par page
    Bonsoir,

    Je souhaite solliciter votre aide sur un problème auquel je suis confronté dans le domaine de la navigation page par page.

    J'utilise actuellement ce code qui fonctionne parfaitement bien. Là n'est pas mon problème. Ce que j'aimerais, c'est que mes variables de départ soient conservées quand on se rend sur une autre page. En gros, voici mon url lorsque j'arrive sur la première page de mon document :

    http://www.monsite.com/articles.php?...=234&test_id=1

    Puis, lorsque je clique sur suivant pour me rendre à la seconde page de mon document, cela me donne ceci comme url :

    http://www.monsite.com/articles.php?pageno=2

    De ce fait, les personne regardant le site, ne peuvent pas bookmarquer la seconde page. Ce qui peut être utile non ?

    Avez vous une idée pour palier ce problème ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    ...
    <tr height="10px">
    		<td style="font-size:14px; font-weight:bold;"><?=$info_art['title']?></td>
    		<td>
    			<? 			
    			if (isset($_GET['pageno'])) {
    			   $pageno = $_GET['pageno'];
    			} else {
    			   $pageno = 1;
    			}
     
    			$query = "SELECT count(*) FROM _articles WHERE test_id = '$test_id'";
    			$result = mysql_query($query);
    			$query_data = mysql_fetch_row($result);
    			$numrows = $query_data[0];
     
    			$rows_per_page = 1;
    			$lastpage = ceil($numrows/$rows_per_page);
     
    			$pageno = (int)$pageno;
    			if ($pageno < 1) {
    			   $pageno = 1;
    			} elseif ($pageno > $lastpage) {
    			   $pageno = $lastpage;
    			}
     
    			$limit = 'LIMIT ' .($pageno - 1) * $rows_per_page .',' .$rows_per_page;
     
    			$query = "SELECT * FROM _articles WHERE test_id = '$test_id' $limit";
    			$result = mysql_query($query);
    			?>
    		</td>
    	</tr>
    	<tr height="15px" bgcolor="#EBEBEB">
    		<td colspan="3"></td>
    	</tr>
    	<tr>
    		<td colspan="3">
    			<?
    			// début du tableau
    			?>
    			<table width="100%" border="0">
    			<?
    			while($row = mysql_fetch_array($result)) {
    				echo '<tr>';
    				echo '<td colspan="3">'.stripslashes($row['text']).'</td>';
    				echo '</tr>';
    			}
    			?>
    					<tr bgcolor="#EBEBEB">
    						<td align="center" height="20px">
    						<?
    						if ($pageno == 1) {
    						   echo "<< Première | < Précédente";
    						} else {
    						   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=1'><< Première</a> | ";
    						   $prevpage = $pageno-1;
    						   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$prevpage'>< Précédente</a> ";
    						}		
    						?>
    						</td>
    						<td align="center">
    						<? 
    						echo "( Page $pageno sur $lastpage )";
    						?>
    						</td>
    						<td align="center">
    						<?
    						if ($pageno == $lastpage) {
    						   echo "Suivante > | Dernière >>";
    						} else {
    						   $nextpage = $pageno+1;
    						   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$nextpage' >Suivante ></a>  | ";
    						   echo " <a href='{$_SERVER['PHP_SELF']}?pageno=$lastpage'>Dernière >></a> ";
    						}
    						?>
    						</td>
    					</tr>
    				</table>
    		</td>
    	</tr>...
    Dans un second temps, j'aimerais rajouter un champ <SELECT></SELECT> de navigation entre les différentes pages qui reprendrait le nom des pages. Est-ce possible ? Comment puis-je faire ?

    Merci de vos conseils.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Option 1 : utilisez une session
    Option 2 : retransmettez ces mêmes variables par la méthode GET
    Si vous êtes en PHP 5, vous avez la fonction http_build_query :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if isset($_GET['pageno'])) {
        unset($_GET['pageno']);
    }
    $get = http_build_query($_GET);
     
    // Exemple :
    printf ('<a href="%s?pageno=%d&%s">< Précédente</a>', basename(__FILE__), $prevpage, $get);
    C'est pour montrer le principe mais vous pouvez aussi le faire manuellement.

  3. #3
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Tu dois envoyer les variables qui se trovaient dans la première page dont tu aura besoin par la mèthode Get.
    Dans la première page tu récupère toutes tes variables et tu les utilisent, si tu veux les envoyer vers la deuxième page quand tu met le lien vers la page suivante tu dois mettre aussi ces variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<a href=\"Page1.php?test_id=1&page=2&variable1=$v1&variable2=$v2\">Page Suivante</a>";
    Et dans la deuxième page tu les récupère de nouveau avec GET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $test=$_GET['test_id'];
    $page=$_GET['page'];
    $var1=$_GET['variable1'];
    $var2=$_GET['variable2'];
    J'espère que c'est ce que tu cherche!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2007
    Messages : 52
    Par défaut
    Salut,

    perso j'ai eu le même problème que toi, et avec des varaibles session ou $_post/$_get je n'y arrivais pas.
    Quand je naviguais, il perdait l'id envoyé par l'URL...
    Du coup, j'ai crée une table "variables" dans ma BD, puis je vais chaque fois lire la donnée inscrite dans cette table.
    Si tu veux, au moment ou je séléctionne l'id pour la recherche, il va l'inscrire dans la BD, puis pour la recherche et la naviguation, du lui faire lire dans la BD, WHERE id='prédéfini' ...

Discussions similaires

  1. Affichage ipconfig /displaydns page par page? windows7
    Par destructive.flame dans le forum Windows
    Réponses: 1
    Dernier message: 28/02/2014, 08h00
  2. [MySQL] Affichage du résultat page par page (pagination)
    Par marcito dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/07/2007, 14h53
  3. [MySQL] Affichage page par page et requêtes du type $sql .=
    Par carelha dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 06/04/2006, 17h12
  4. [Tableaux] PB liens apres affichage page par page
    Par x2thez dans le forum Langage
    Réponses: 16
    Dernier message: 15/03/2006, 16h58
  5. [MySQL] afficher plusieurs enregistrements par page par page à la volée
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 14/03/2006, 12h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo