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 :

Comment faire pour avoir un lien sur les pages suivantes/précédentes


Sujet :

PHP & Base de données

Vue hybride

Invité Comment faire pour avoir un... 19/10/2006, 14h35
Mr N. Le mot clé qui tue :... 19/10/2006, 14h56
Kerod C'est tout à fait et il y a... 19/10/2006, 16h10
navis84 Bonjour, Il y a par... 19/10/2006, 16h59
Invité Merci pour l'aide, j'ai... 19/10/2006, 23h07
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Meewix
    Invité(e)
    Par défaut Comment faire pour avoir un lien sur les pages suivantes/précédentes
    Bonjour,

    Voilà, j'aimerais afficher X annnonces sur une page et les autres X annonces sur les pages suivantes avec un lien du style :
    page : 1-2-3-4 et mieux si je peux mettre un lien suivante / précédente.

    Je ne trouve pas l'info sur le Forum malgré ma recherche, si vous pouviez m'aiguiller. :o)

    Marci

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Le mot clé qui tue : pagination

  3. #3
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    C'est tout à fait et il y a des tonnes de sujet dans le forum SGBD (qui est fait pour tout ce qui est relation BDD. et de plus tu as un exemple concret sur la page sources PHP (lien en haut)

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    533
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 533
    Par défaut
    Bonjour,

    Il y a par exemple ce topic où j'ai apporté une proposition de solution. En espérant que ça t'aide.

  5. #5
    Meewix
    Invité(e)
    Par défaut
    Merci pour l'aide, j'ai réussi à faire presque se que je veux mais j'ai un pb.
    Bon il compte bien le nb d'enregistrement (j'en ai 7 dans la table), je donne une limite de 5 par page et il m'affiche bien les 5 avec un lien pour les pages suivantes, mais il ne génère pas les liens suivant MAIS il m'affiche tout de même :
    "Page : 1 2 3" alors que logiquement il devrait juste mettre la 1 et la 2 pour les 2 derniers enregistrements et là il me met 3 pages le bougre !

    VOici le code :
    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
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <link rel="stylesheet" type="text/css" href="/style/styleadmin.css" media="all" />
    </head>
     
    <body>
    <div align="center">[ <a href="index.php">Accueil</a> ] [ <a href="ann_ajout.php">Ajouter</a> ]</div><br>
    <?php
    require("./../pass/config.inc.php");
    require("./../admin/fonction.php");
     
     
     
    // connexion à la base
    $db = mysql_connect($HostName, $UserName, $UserPass) or die ('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db($MysqlBdd,$db) or die ('Erreur de selection '.mysql_error());
     
    // on va afficher 5 résultats par page
    $userperpage = 5;
    //Nombre indiquant le départ de la requete
    $start = isset($_GET['start'])?$_GET['start']:0;
    // Nom de la page
    $page = basename(__FILE__);
    // Compte les enregistrements
    $select = 'SELECT count(*) as total FROM annonces';
    $result = mysql_query($select,$db) or die ('Erreur : '. mysql_error());
    $row = mysql_fetch_array($result);
    $total = $row['total'];
     
    if($total > 0) {
        // début du tableau
        	echo '
    		  <table width="95%" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#666666" bgcolor="#EEEEEE">
    		    <tr>
    				<td>
    					<table cellspacing="1" cellpadding="1" width="100%">
    						<tr bgcolor="#FFCC00" align="center">
    						  <td colspan="9"><strong><font color="#FFFFFF">Terrains</font></strong></td>
    						</tr>
    						<tr bgcolor="#666666" align="center">
    						<td><font color="#FFFFFF"><b>N°Ref</b></font></td>
    <!--						<td><font color="#FFFFFF"><b>Date d\'inser.</b></font></td>
    						<td><font color="#FFFFFF"><b>Date de modif.</b></font></td>-->
    						<td><font color="#FFFFFF"><b>Publier</b></font></td>
    						<td><font color="#FFFFFF"><b>Statut</b></font></td>
    						<td><font color="#FFFFFF"><b>Surf. Terrain</b></font></td>
    						<td><font color="#FFFFFF"><b>Prix</b></font></td>
    						<td><font color="#FFFFFF"><b>Vendu</b></font></td>
    						<td><font color="#FFFFFF"><b>Stats</b></font></td>
    						<td><font color="#FFFFFF"><b>Photos</b></font></td>
    						<td align="center"><font color="#FFFFFF"><b>Actions</b></font></td>
    						</tr>';
    	// requête SQL qui récupère tous les enregistrements
    	$select = 'SELECT * FROM annonces,liste_statut WHERE type="Terrain" AND annonces.statut=liste_statut.id_statut ORDER BY publi DESC LIMIT '.$start.','.$userperpage;
    	$result = mysql_query($select,$db) or die ('Erreur : '.mysql_error() );
     
    					while($row = mysql_fetch_array($result))
    						{
    						$color = line2color('#EEEEEE','#FFFFFF');
    						echo'
    						<tr align="center">
    						<td bgcolor='.$color.'><a href="voir.php?id_annonce='.$row['id_annonce'].'">'.$row['ref'].'</a></td>
    <!--						<td bgcolor='.$color.'>'.$row['date_ins'].'</td>
    						<td bgcolor='.$color.'>'.$row['date_up'].'</td>-->
    						<td bgcolor='.$color.'>';
    						if ($row['publi'] == 'oui'){
    						echo'<b><font color="green">'.$row['publi'].'</font></b>'; }
    						else echo'<b><font color="red">'.$row['publi'].'</font></b>';
    						echo'</td>
    						<td bgcolor='.$color.'>'.$row['nom_statut'].'</td>
    						<td bgcolor='.$color.'>'.$row['surf_terr'].'</td>
    						<td bgcolor='.$color.'>'.$row['prix'].'</td>
    						<td bgcolor='.$color.'>';
    						if ($row['vendu'] == 'oui'){
    						echo'<b><font color="green">'.$row['vendu'].'</font></b>'; }
    						else echo'<b><font color="red">'.$row['vendu'].'</font></b>';
    						echo'</td>
    						<td bgcolor='.$color.'>'.$row['stats'].'</td>
    						<td bgcolor='.$color.'><a href="ann_up_photo01.php?id_annonce='.$row['id_annonce'].'&photo01='.$row['photo01'].'"">N°1</a> | <a href="ann_up_photo02.php?id_annonce='.$row['id_annonce'].'&photo02='.$row['photo02'].'"">N°2</a> | <a href="ann_up_photo03.php?id_annonce='.$row['id_annonce'].'&photo03='.$row['photo03'].'"">N°3</a> | <a href="ann_up_photo04.php?id_annonce='.$row['id_annonce'].'&photo04='.$row['photo04'].'"">N°4</a></td>
    						<td bgcolor='.$color.' align="center"><a href="ann_update.php?id_annonce='.$row['id_annonce'].'"><img src="/img/edit.gif" border="0" alt="Editer" title="Editer"></a> <a href="ann_del.php?id_annonce='.$row['id_annonce'].'&photo01='.$row['photo01'].'&photo02='.$row['photo02'].'&photo03='.$row['photo03'].'&photo04='.$row['photo04'].'"><img src="/img/delete.gif" border="0" alt="Supprimer" title="Supprimer"></a></td>
    						';
    						}
    						echo'</table></td></tr></table>';
    					// fin du tableau.
     
    // Génération des liens pour l'affichage des pages
    	echo 'Page : ';
    	$genestart = 0;
    	for($i = 1; $i <= ceil( $total / $userperpage ); $i++)
    	{
    		echo '<a '.(((floor($start/$userperpage)+1)==$i)?('href="'.$page.'?start='.$genestart.'"'):('')).'>'.$i.'</a>&nbsp;';
    		$genestart += $userperpage;
    	}
    }
    	else
    		echo '
    			<html>
    			<head>
    			<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    				<style type="text/css" media="all">
    				@import "/style/styleadmin.css";
    				</style>
    			</head>
    			<body>
    				<div align="center"><b><font color="red">Aucun enregistrements !</font></b></td>
    			</body>
    			</html>
    		';
     
     
    // on libère le résultat
    mysql_free_result($result);
    ?>
    </body>
    </html>
    Si vous avez une piste !

    Merci

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for($i = 1; $i < ceil( $total / $userperpage ); $i++)
        {
            echo '<a href="'.$page.'?start='.$genestart.'">'.$i.'</a>&nbsp;';
            $genestart += $userperpage;
        }
    Déjà comme ça. J'ai pas regardé le reste mais de ce cote ca devrait aller

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/11/2013, 19h36
  2. Réponses: 12
    Dernier message: 14/04/2009, 20h10
  3. Réponses: 1
    Dernier message: 23/07/2007, 11h00
  4. Réponses: 3
    Dernier message: 01/07/2006, 14h04
  5. Réponses: 7
    Dernier message: 21/04/2005, 15h55

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