begin process at 2012 05 28 18:40:40
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Comment faire pour afficher cette requete sur plusieur pages ?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment faire pour afficher cette requete sur plusieur pages ?

lundi 17 octobre 2005 à 21:08:48 | Comment faire pour afficher cette requete sur plusieur pages ?

skyman272

Bonjour, question pour les pros du PHP

La requette dans le code ci dessous fonctionne mais le resultat devrait s'afficher sur plusieurs pages. 5 résultat par page. Or ça ne marche pas j'ai tous les résultats qui s'affiche toujours sur la meme page.
Je ne suis pas un cador du php. Si quelqu'un de génial arrivait à trouver l'anomalie dans mon code...
Merci

Voici le code commenté :


 <html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#000033" text="#FFFFFF" link="#FFFFCC" vlink="#FFFF99" alink="#FFFF66">
<?php require_once('Connections/fichier.php'); ?>
<?php

// Connnexion à la base
mysql_select_db($database_fichier, $fichier) or die(mysql_error());

// Parametres de la requete
$varRegion = $select;
$varType   = $select2;
$nb_rep_pages=5;

// Requete SQL
if(empty($page)) $page = 1;
if(empty($fin)){
if($varType == Tous)
$sql = "SELECT *
 FROM Fiche_produit
 WHERE Fiche_produit.Region ='$varRegion'
 ORDER BY Identite";
else
$sql = "SELECT *
 FROM Fiche_produit
 WHERE Fiche_produit.Region ='$varRegion'
 AND Fiche_produit.Type ='$varType'
 ORDER BY Identite"; 
}

// Déclaration de la variable début
$debut = ($page - 1) * $nb_rep_pages;

$nbpages = ceil($fin / $nb_rep_pages); 

// Interrogation de la base
$result = mysql_query($sql, $fichier) or die(mysql_error());

// Nombre de lignes de résultat
$totalRows = mysql_num_rows($result);

if ($totalRows == 0)
{
 echo "<p>La recherche n'a retourné aucun résultat</p>";
}
else
{
 echo "
<p>
 Résultat de la recherche : $totalRows produits.
</p>

<table border=\"1\">
<tr>
<th>Secteur</th>
<th>Type</th>
<th>Prix de vente du bien</th>
<th>Présentation</th>
<th>Photo</th>
<th>Accès</th>
</tr>
";

for($i = 1;$i <= $nbpages;$i ++){
echo "<font size='1' face='verdana' color='#000000'><a href=\"?page=$i&fin=$fin\">Page $i</a></font>";
if($i < $nbpages) echo " - ";
}

 // Récupération ligne par ligne des résultats
 while ($row = mysql_fetch_array($result))
 
 {
  echo "<tr> 
  <td>{$row['Secteur']}</td>
  <td>{$row['Type']}</td>
  <td>{$row['Prix']} &euro;</td>
  <td>{$row['Presentation']}</td>
  <td><img src=\"{$row['Photo']}\"></td>
  <td><a href=\"{$row['Acces']}\">Découvrir le bien</td>
  </tr>
  ";
 }

 echo "</table>";

}
for($i = 1;$i <= $nbpages;$i ++){
echo "<font size='1' face='verdana' color='#000000'><a href=\"?page=$i&fin=$fin\">Page $i</a></font>";
if($i < $nbpages) echo " - ";
}

while( $contenu = mysql_fetch_array ($result))
 

// Libération mémoire
mysql_free_result($result);

// Fermeture de la connexion
mysql_close($fichier);

?>
<td width="210" height="189" background="images/5.gif"> <div align="center">
    <p>&nbsp;</p>
    <p><strong><font size="4">Autres recherches </font></strong></p>
  </div>
  <form action="fiche_select.php" method="post" name="table_recherche">
  <p>
    <label>Region
    <select name="select" tabindex="1">
      <option value="Midi-Pyrénées">Midi-Pyr&eacute;n&eacute;es</option>
      <option value="Languedoc">Languedoc</option>
      <option value="Provence">Provence</option>
      <option value="Aquitaine">Aquitaine</option>
      <option value="Autres-régions">Autres R&eacute;gions</option>
    </select>
    </label>
  </p>
  <p>
    <label>Type
    <select name="select2" tabindex="2">
        <option value="Manoir-Ch&acirc;teau">Manoirs et Ch&acirc;teaux</option>
        <option value="Propri&eacute;t&eacute;-rurale">Propri&eacute;t&eacute;s rurales</option>
        <option value="Belle-Demeure">Belles demeures</option>
        <option value="Maison-de-Campagne">Maisons de campagne</option>
        <option value="Maison-de-village">Maisons de village</option>
        <option value="Maison-de-ville">Maisons de ville</option>
        <option value="Villa">Villas</option>
        <option value="Autre-bien">Autres Biens</option>
        <option value="Tous" selected>Tous les biens</option>
      </select>
    </label>
  </p>
  <p align="center">
    <label>
    <input type="submit" name="Submit" value="Envoyer" tabindex="3">
    </label>
  </p>
</form>
</td>
</body>
</html>

mardi 18 octobre 2005 à 00:37:48 | Re : Comment faire pour afficher cette requete sur plusieur pages ?

jnbrunet

Salut,
voila ce donc j'ai compris:

tu ajoutes en debut de page: $nb= 5;
if(isset($_GET['start'])) {$start = $_GET['start'];} else {$start=0;}

ensuite,

remplace: if($varType == Tous)
$sql = "SELECT *
 FROM Fiche_produit
 WHERE Fiche_produit.Region ='$varRegion'
 ORDER BY Identite LIMIT ".$start.",".$nb;
else
$sql = "SELECT *
 FROM Fiche_produit
 WHERE Fiche_produit.Region ='$varRegion'
 AND Fiche_produit.Type ='$varType'
 ORDER BY Identite LIMIT ".$start.",".$nb; 
}

ajoute en bas de ce que je t dis de remplacer:

$result=mysql_query("SELECT COUNT(*) FROM `Fiche_produit` WHERE Fiche_produit.Region ='$varRegion'") OR die("Comptage Impossible");
$row = mysql_fetch_row($result);


voici un petit code pour afficher les pages:

if ($start == 0) {
echo '<strong><font size="1" face="Verdana">[1]</font></strong>';
} else {
echo '<a href="tapage.php?start=0">[1]</a>&nbsp;';
}
for($index=1;($index*$nb)<$row[0];$index++) {
$pg = $index+1;
if(($index*$nb)!=$start) {
print('<a href="tapage.php?start='.($index*$nb).'">');
echo '['.$pg.']';
print("</a>");
}
else {
echo ' <strong><font size="1" face="Verdana">['.$pg.']</font></strong>';
}

voilà......aissai de comprendre ce petit code....

Jn

mardi 18 octobre 2005 à 09:20:56 | Re : Comment faire pour afficher cette requete sur plusieur pages ?

malalam

Administrateur CodeS-SourceS
hello,

bon, pour expliquer le principe, qui est très simple :

les requêtes doivent utiliser la clause LIMIT.
Cette clause est en fait un pointeur. Il indique à mysql combien de lignes renvoyer, et à partir de quelle ligne commencer...
La doc ici : http://dev.mysql.com/doc/refman/5.0/en/select.html

Ensuite, tu te fais 2 liens, 2 boutons, comme tu veux, qui vont renvoyer à la même page un compteur, que tu vas utiliser dans LIMIT justement.
Imaginons que tu pagines de 10 en 10.
Pour aller vers la droite, tu auras $compteur +=10, vers la gauche : $compteur -=10 (sachant qu'il ne doit pas descendre en dessous de 0). Et tes liens vont simplement l'envoyer à la page, et la requête dans ta page va s'en servir dans la requête sur LIMIT (avec un test d'existence).

En gros hein.



Cette discussion est classée dans : page, mysql, pages, echo, result


Répondre à ce message

Sujets en rapport avec ce message

HELP probléme affichage de données [ par vikingdeath ] Bonjour, je débute en php et j'ai un problème que j'arrive pas a régler. j'ai une bases de données avec 2 tables qui sont reliée la 1ére contient tou problème d'affichage de page [ par morgain63 ] bonjour, à la base ça me supprimait l'affichage des deux pages (il me restait plus que le menu et le font d'écran) et la bdd était pas modifiée mainte Gestion des posts [ par lilj ] Bonjour, voilà je suis totalement bloqué, j'essaye tant bien que mal de résoudre mon problème. Mon problème : J'ai une page qui affiche des "idées" p affichage page par page avec des point (...) [ par slashf ] salut a tous donc voilà j'ai un scripte qui marche très bien jusque là pas de souci sauf que si j'ai un résultats de 100 pages ça va être trop encombé erreur de mysql :mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in [ par ouzb ] Bonjour j'aimerai quelqu'un m'aider concernant cette erreur :Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C [Demande] executer un script php chargé via une bdd [ par azumi13 ] Bonjour à tous!Je viens demander un peu d'aide, car je ne connais pas la solution à mon souci (c'est pour cela d'ailleurs que c'est une problème ).Je tableau des membres (fonction modifier et suprimer de la basse) [ par piteur30 ] bonjourj'ai aficher toute les doner de mon tableau membre dans un tableau par se script :$host = 'serveur';$user = 'login';$pass = 'mot de passe'; affichage sur plusieurs page [ par piteur30 ] bonjourmon livre d'or est bientôt terminer et sa grâce a votre aidej'aurai encore besoin de votre aide pour afficher 10 messages par pageet ensuite qu php [ par marocmarocmaroc ] Salut;problème presque déjà posé mais je ne sais pas l'analyser voilà le code:j'explique mon problème:dans ma page j'ai deux listes déroulantes et deu


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,170 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales