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 :

Afficher les résultats de requête sur pages 1,2,3


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 27
    Points
    27
    Par défaut Afficher les résultats de requête sur pages 1,2,3
    bonjour

    j'ai essayé de mettre le résultat de mes requete sur plusieurs pages mais le problème c'est que j'ai bien les liens des pages 1,2 et 3 qui apparaissent mais quand je clique vers ces liens la page est vide
    Je ne vois pas les résultats de mes requêtes alors qu'il devrait y en avoir
    Il n'y a que la 1ère page où j'ai des résultats et pas sur le lien de page 1
    Je ne comprends pas
    merci d'avance pour votre réponse

    Voici le formulaire
    Code HTML : 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
    <html >
    <head> 
    <title>Document sans titre</title> 
    <style type="text/css"> 
    <!-- 
    #Layer1 { 
    position:absolute; 
    left:62px; 
    top:130px; 
    width:627px; 
    height:266px; 
    z-index:1; 
    } 
    #Layer2 { 
    position:absolute; 
    left:70px; 
    top:36px; 
    width:828px; 
    height:290px; 
    z-index:1; 
    } 
    --> 
    </style> 
    </head> 
     
    <body> 
    <div id="Layer2"> 
    <form id="form1" name="form1" method="post" action="integrationmotcleetlienpage.php"> 
    <table width="527" height="160" border="0" cellpadding="0"> 
    <tr> 
    <td width="144"><input name="mot" type="text" id="mot"></td> 
    <td width="186"><div align="center"> 
    <div align="right"> 
    <select name="quoi" id="quoi"> 
    <option value="avion">marre</option> 
    <option value="voiture">voiture</option> 
    </select> 
    </div> 
    </div></td> 
    <td width="189"><div align="center"> 
    <select name="endroit" id="endroit"> 
    <option>touslesdépartements</option> 
    <option value="13009">13009</option> 
    </select> 
    </div></td> 
    </tr> 
     
    <tr> 
    <td height="58" colspan="3"><div align="center"> 
    <input type="submit" name="Submit" value="rechercher" /> 
    </div></td> 
    </tr> 
    </table> 
    </form> 
    </div> 
    </body> 
    </html>

    et ma page integrationmotcleetlienpage.php
    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
    <html > 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Document sans titre</title> 
    </head> 
    <body> 
    <?php 
    $liendb = mysql_connect("nomserveur","user","pass"); 
    mysql_select_db ("nombase"); 
     
    function protection(&$value) { 
    $value = (get_magic_quotes_gpc())? mysql_real_escape_string(stripslashes(trim($value))) : mysql_real_escape_string(trim($value)); 
    return $value; 
    } 
     
    $quoi = !empty($_POST['quoi'])? protection($_POST['quoi']) : ''; 
    $endroit = !empty($_POST['endroit'])? protection($_POST['endroit']) : ''; 
     
    $sql= "SELECT texte,titre,id FROM annonce WHERE categorie = '" . $quoi . "' AND departement = '" . $endroit . "'"; 
     
    if (empty($_POST['mot']) === FALSE) { 
     
    $tab = explode(' ', $_POST['mot']); 
    array_walk($tab, 'protection'); 
    $IN = implode("','", $tab); 
     
    $sql .= " AND motcle1 IN ('$IN')"; 
    } 
     
     
    $resultat_sql = mysql_query($sql) or die (mysql_error()); 
     
     
    $nombreDeMessagesParPage = 2; 
    $n =mysql_num_rows($resultat_sql); 
    $nombresDePages =ceil($n/$nombreDeMessagesParPage ); 
    echo 'Page : '; 
    for ($i = 1 ; $i <= $nombresDePages ; $i++) 
    { 
    echo '<a href="integrationmotcleetlienpage.php?page=' . $i . '">' . $i . '</a> '; 
    } 
     
     
    if (isset($_GET['page'])) 
    { 
    $page = $_GET['page']; } 
    else 
    { 
    $page = 1; } 
     
    $premierMessageAafficher = ($page - 1) * $nombreDeMessagesParPage; 
    $sqll= "SELECT texte,titre,id FROM annonce WHERE categorie = '" . $quoi . "' AND departement = '" . $endroit . "' ORDER BY id DESC LIMIT " . $premierMessageAafficher . ", " . $nombreDeMessagesParPage; 
     
    if (empty($_POST['mot']) === FALSE) { 
     
    $tab = explode(' ', $_POST['mot']); 
    array_walk($tab, 'protection'); 
    $IN = implode("','", $tab); 
     
    $sqll .= " AND motcle1 IN ('$IN')"; 
    } 
     
    $resultatt_sql = mysql_query($sqll) or die (mysql_error()); 
     
     
    ?> 
     
    <html > 
     
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <title>Document sans nom</title> 
    </head> 
     
    <body> 
    <table style="border:1px solid black; width:100%"> 
    <?php while ($resultat = mysql_fetch_assoc($resultatt_sql)) 
    { ?> 
    <tr> 
    <td><a href="description50page.php?<?php echo 'id='.intval($resultat['id']) ?>"><?php echo htmlentities($resultat['titre'])?></a></td> 
    </tr> 
    <?php } mysql_free_result($resultatt_sql); 
     
    mysql_close($liendb); 
    ?> 
    </table> 
    </body> 
    </html>

  2. #2
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Points : 12 572
    Points
    12 572
    Par défaut
    Tu peux t'inspirer de ce tuto ICI
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 32
    Points : 27
    Points
    27
    Par défaut pagination
    bonjour
    j'ai regardé le tuto mais dans cet exemple on compte tous ce qu'il y dans la table alors que moi je ne veux compter que les résultats de ma requete
    comment dois je faire merci d'avance pour ton aide

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

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Points : 318
    Points
    318
    Par défaut
    Bon j'avais crée une fonction qui me permet d'afficher le résultat sur plusieurs page. Voici le code tu peux essayer de l'utiliser et si t'as un problème fait moi signe.Juste un conseil, il faut que tu réfléchi d'abord à tes problèmes et que tu essai de les résoudres et après si t'as un problème tu viens au forum comme ça tu apprendra mieux.
    Voici la fonction
    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
     
    <?php
    function pagination($page,$nb,$num_page,$pagine_with)
    	{
    /*
    $page est la page à laquelle l'utilisateur sera renvoyé après click sur le lien de pagination
    $nb est le nombre total du résultat de la requête sans LIMIT
    $num_page est le numero de la page actuelle il sert pour différencier les liens
    $pagine_with est le nombre d'enregistrement que tu veux afficher par page
    */
    //On calcul le nombre de pages
    		$nb_page=$nb/$pagine_with;
    		$m=$nb%$pagine_with; //$m le reste de la division de nb sur 6
    		$nb_page=ceil($nb/$pagine_with);
    		$j=1;
    		$de=0;//le num de début de la requete de sélection
     
     
    	echo '<table class="pagination" align="center"><tr>';
    	/*Si on ne se treouve pas dans la premiere page, on affiche le lien de retour a la page precedente*/
    		if($num_page>1)
    			{
    			$num_page_preced=$num_page-1;
    			$debut_precedent=($num_page-2)*$pagine_with;
    		echo '<td class="pagination"><a href="'.$page.'&debut='.$debut_precedent.'&num_page='.$num_page_preced.'" class="pagination">Page précédente</a></td>';	
    			}
    	/*Affichage des liens de pagination*/
    		while($j<=$nb_page)
    			{
    			echo '<td width="20" class="';
    			if($num_page==$j)
    				{
    				echo 'actif_pagination';
    				}
    			else
    				{
    				echo 'pagination';
    				}
    	 echo '"><a width="25" href="'.$page.'&debut='.$de.'&num_page='.$j.'" class="';
     
    				if($num_page==$j)
    				{
    				echo 'actif_pagination';
    				}
    			else
    				{
    				echo 'pagination';
    				}
    	  echo '">  '.$j.'  </a></td>';
     
    			$de=$de+$pagine_with;
    			$j=$j+1;
    			}
     
    	/*Si on ne se treouve pas dans la derniere page, on affiche le lien de retour a la page suivante*/
    		if($num_page<$nb_page)
    			{
    			$next_page=$num_page+1;
    			$debut_next=$num_page*$pagine_with;
    		echo '<td class="pagination"><a href="'.$page.'&debut='.$debut_next.'&num_page='.$next_page.'" class="pagination">Page suivante</a></td>';	
    			}
     
    	echo '</tr></table>';
    	}
    ?>
    et voici comment on l'utilise
    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
     
    $mot_cle=$_GET['mot_cle'];
    	//Il faut d'abord connaitre le nombre de lignes du resultat global
    			$req='SELECT * FROM pws_users WHERE (user_ville="'.$mot_cle.'") AND (user_denom is NOT NULL) ORDER BY user_id ASC';
    			$rst= mysql_query($req);
    			$nb=mysql_num_rows($rst);
    //$debut et le numero de debut qui sera utilise dans la requete. LIMIT $debut,$pagine_with
    			$debut=(isset($_GET['debut']))?$_GET['debut']:0;
    			$num_page=(isset($_GET['num_page']))?$_GET['num_page']:1;
     
    		//On inclus la fonction de pagination
    			include_once('modules/search/pagination.php');
    		pagination('search.php?ville='.$mot_cle,$nb,$num_page,6);
     
    /* ------------------------------------------------------------------------------------------------------------------- */
     
    			$requete='SELECT * FROM pws_users WHERE (user_ville="'.$mot_cle.'") AND (user_denom is NOT NULL) ORDER BY user_id ASC LIMIT '.$debut.',6';
     
    		/*Execution de la requete*/
    		$resultat=mysql_query $requete) ;
    			//	Affichage du r&eacute;sultat de la requete
    J'espère qu'elle sera utile pour toi
    http://fr.obedev.com/: Un blog sur le développement web et mobile.

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2015, 13h27
  2. Afficher les résultats des requêtes SQL
    Par Glauben dans le forum NetBeans
    Réponses: 4
    Dernier message: 04/07/2011, 19h35
  3. Afficher les résultats d'une requête ligne après ligne
    Par ThunderBolt_ dans le forum VBA Access
    Réponses: 9
    Dernier message: 02/08/2007, 13h28
  4. [MySQL] Afficher les résultats sur 3 colones et 2 lignes
    Par Meewix dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/10/2006, 23h14
  5. [SQL] Afficher les résultats d'une requête sur plusieurs pages
    Par mealtone dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/09/2006, 13h20

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