Affichage page par page en Php
Dernière réponse : dans Programmation
Rebonjour à tous
,
J'ai un petit problème pour afficher les pages suivantes ou précedentes contenant les résultats de mes requêttes.
Voici une partie du code: "rechercher.php"
....... code long (connexion à la base de données, parcours dans ma table pour afficher les résultats, etc).
$limit=5; // pour afficher 5 résultats par page
if (!isset($debut)) $debut =0;
$nrows = myql_num_rows($result);
if(($debut+$limit)<$nrows)
{
echo "<a href=search.php?recherche=$recherche&choix=$choix&debut=".($debut+$limit).">Suivant</a>";
}
L'autre code : "formulaire.php"
<form action="rechercher.php" method = "post">
<input type= "text" size="15" name="recherche">
<input type= "submit" value="Valider">
<input type="radio" checked name="choix" value="OR">OU
<input type="radio" name="choix" value="AND">ET</p>
L'affichage se fait sans aucun problème, mais dés que je clique
sur le lien "Suivant" il m'affiche la page d'acceuil (le formulaire) avec aucun résultat de la requêtte.Normalement,
je dois avoir sur la page suivante la suite de la recherche.
Quelqu'un à une idée pourquoi?
Merci d'avance
,J'ai un petit problème pour afficher les pages suivantes ou précedentes contenant les résultats de mes requêttes.
Voici une partie du code: "rechercher.php"
....... code long (connexion à la base de données, parcours dans ma table pour afficher les résultats, etc).
$limit=5; // pour afficher 5 résultats par page
if (!isset($debut)) $debut =0;
$nrows = myql_num_rows($result);
if(($debut+$limit)<$nrows)
{
echo "<a href=search.php?recherche=$recherche&choix=$choix&debut=".($debut+$limit).">Suivant</a>";
}
L'autre code : "formulaire.php"
<form action="rechercher.php" method = "post">
<input type= "text" size="15" name="recherche">
<input type= "submit" value="Valider">
<input type="radio" checked name="choix" value="OR">OU
<input type="radio" name="choix" value="AND">ET</p>
L'affichage se fait sans aucun problème, mais dés que je clique
sur le lien "Suivant" il m'affiche la page d'acceuil (le formulaire) avec aucun résultat de la requêtte.Normalement,
je dois avoir sur la page suivante la suite de la recherche.
Quelqu'un à une idée pourquoi?
Merci d'avance
Autres pages sur : affichage page page php
Lassé par la pub ? Créez un compte
C'est parce que tu dois mélanger POST et GET.
Ton formulaire est en POST, et lorsque tu fais des "Suivant", tu passes les arguments en GET.
Donc, tout dépend comment tu récupères tes données de ton formulaire, mais si tu ne récupères que les POST, c'est normal.
Le plus simple serait de faire ton formulaire en GET, et de récupérer que les valeurs GET dans ta page recherche.php
Ton formulaire est en POST, et lorsque tu fais des "Suivant", tu passes les arguments en GET.
Donc, tout dépend comment tu récupères tes données de ton formulaire, mais si tu ne récupères que les POST, c'est normal.
Le plus simple serait de faire ton formulaire en GET, et de récupérer que les valeurs GET dans ta page recherche.php
Je suis obligé de passer en Get pour que ca fonctionne?
Mais comme tu dit, je dois mélanger Get et Post pour que ca fonctionne .
J'ai mis "Get" à la place de "post". Là, je n'obtiens plus la page d'accueil comme avant, mais en cliquant sur suivant, ça reste sur la même page
. Le lien "suivant" ne réagit plus !!!
Pour répondre à ta question, je récupère le champ "recherche" par un "Post", maintenant je l'ai changer en "Get".
Mais comme tu dit, je dois mélanger Get et Post pour que ca fonctionne .
J'ai mis "Get" à la place de "post". Là, je n'obtiens plus la page d'accueil comme avant, mais en cliquant sur suivant, ça reste sur la même page
. Le lien "suivant" ne réagit plus !!!Pour répondre à ta question, je récupère le champ "recherche" par un "Post", maintenant je l'ai changer en "Get".
stephane81 a dit :
. Le lien "suivant" ne réagit plus !!!il ne réagit pas, tu veux dire que la page ne se recharge meme pas?
entoure ton lien par des "
sinon faudrait donner le code source correpondant à la requete pour voir comment tu gere l'affichage des informations suivantes.
tu peux faire des echo sur ta page pour tester les valeurs passé ainsi que la requete executés pour essayer de délimiter la cause du probleme
Mon lien il est bien encadré avec des "":
if(($debut+$limit)<$nrows)
{
echo "<a href=rechercher.php?recherche=$recherche&choix=$choix&debut
=".($debut+$limit).">Suivant</a>";
}
J'ai posté mon formulaire ainsi qu'une partie de mon Script php
dans mon premier message, si ta besoin de plus de détails, je te lenverrais.
Je ne voulais pas mettre tout le code de mon script php, car c'est long.
if(($debut+$limit)<$nrows)
{
echo "<a href=rechercher.php?recherche=$recherche&choix=$choix&debut
=".($debut+$limit).">Suivant</a>";
}
J'ai posté mon formulaire ainsi qu'une partie de mon Script php
dans mon premier message, si ta besoin de plus de détails, je te lenverrais.
Je ne voulais pas mettre tout le code de mon script php, car c'est long.
par entourer je parlais du href (meme si je doute que ce soit de la que vient le probleme):
par plus de détails, je voulais la facon dont tu lancais la requête pour voir comment tu récupères les enregistrements souhaités
// le echo c'est pour voir si tu passes bien les bonnes valeurs
echo "<br/>$debut -- $limit<br/>\n";
if(($debut+$limit)<$nrows)
{
echo "<a href='rechercher.php?recherche=$recherche&choix=$choix&debut
=".($debut+$limit)."'>Suivant</a>";
}
par plus de détails, je voulais la facon dont tu lancais la requête pour voir comment tu récupères les enregistrements souhaités
Voici le résultat sur ma page local.
1 | Apprendrephp1 | http://www.phpdebutant.org/
2 | Apprendrephp2 | http://www.phpdebutant.org/
3 | Apprendrephp3 | http://www.phpdebutant.org/
4 | Apprendrephp4 | http://www.phpdebutant.org/
5 | Apprendrephp5 | http://www.phpdebutant.org/
0 -- 5
Precedent Suivant
Donc ca fonctionne ! mais les liens ne fontionne toujours pas, j'ai même ajouté les '' dans le href comme tu m'avais suggérer.
Voici plus de détail sur mon script Php, avec la façon comment je
lance la requête et la façon comment je récupère mes enregistrements
rechercher.php:
<?
$choix = $_GET['choix'];
$recherche = $_GET['recherhe'];
include("connection.php"); //fichier de connexion
include("formulaire.php"); //formulaire de
//recherche
$limit=5; // pour afficher 5 résultats par page
if (!isset($debut)) $debut = 0;
if (!empty($recherche))
{
$mots_recherche=rawurlencode($recherche); //j'encode la recherche
$tab=explode(" " , $mots_recherche);
$nb=count($tab);
$sql="select * from where 1 and key_word like \"$tab[0]\" ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur key_word like \"$tab[$i]\" ";
}
$sql2=$sql; //connaître le nombre de résultats
$sql=" Limit $debut,$limit "; // requête limitante.
mysql_connect($host,$user, $pass);
$result2 = mysql_db_query($db,$sql);
$result = mysql_db_query($db,$sql);
if($result)
{
$nrows = mysql_num_rows($result2);
if(mysql_num_rows($result)==0) echo "<center><b>Désolé, il n'ya pas de Résultat</b></center><br>";
else
{
while($row = mysql_fetch_array($result))
{
echo $row["id"]." | ".$row["titre"];
$url = $row["url"];
echo " | <a href="$url">$url</a><br>";
}
mysql_free_result($result);
/******************************************/
$nombre=ceil($nrows/($limit));
if($debut>0) // affiche la page précedente
{
echo "<a href='rechercher.php?recherche=php$recherche&choix=$choix&debut
=".($debut-$limit)."'>Precedent</a>";
}
echo "<br/>$debut -- $limit<br/>\n";
if (($debut+$limit)<$nrows)
{
echo "<a href='search.php?recherche=php$recherche&operateur=
$operateur&debut=".($debut+$limit)."'>Suivant</a> ";
}
}
}
}
else
{
echo("<center><br><b>Entrer un mot</b></center>");
}
?>
Et voilà, j'espere que c'est ce que tu veux
1 | Apprendrephp1 | http://www.phpdebutant.org/
2 | Apprendrephp2 | http://www.phpdebutant.org/
3 | Apprendrephp3 | http://www.phpdebutant.org/
4 | Apprendrephp4 | http://www.phpdebutant.org/
5 | Apprendrephp5 | http://www.phpdebutant.org/
0 -- 5
Precedent Suivant
Donc ca fonctionne ! mais les liens ne fontionne toujours pas, j'ai même ajouté les '' dans le href comme tu m'avais suggérer.
Voici plus de détail sur mon script Php, avec la façon comment je
lance la requête et la façon comment je récupère mes enregistrements
rechercher.php:
<?
$choix = $_GET['choix'];
$recherche = $_GET['recherhe'];
include("connection.php"); //fichier de connexion
include("formulaire.php"); //formulaire de
//recherche
$limit=5; // pour afficher 5 résultats par page
if (!isset($debut)) $debut = 0;
if (!empty($recherche))
{
$mots_recherche=rawurlencode($recherche); //j'encode la recherche
$tab=explode(" " , $mots_recherche);
$nb=count($tab);
$sql="select * from where 1 and key_word like \"$tab[0]\" ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur key_word like \"$tab[$i]\" ";
}
$sql2=$sql; //connaître le nombre de résultats
$sql=" Limit $debut,$limit "; // requête limitante.
mysql_connect($host,$user, $pass);
$result2 = mysql_db_query($db,$sql);
$result = mysql_db_query($db,$sql);
if($result)
{
$nrows = mysql_num_rows($result2);
if(mysql_num_rows($result)==0) echo "<center><b>Désolé, il n'ya pas de Résultat</b></center><br>";
else
{
while($row = mysql_fetch_array($result))
{
echo $row["id"]." | ".$row["titre"];
$url = $row["url"];
echo " | <a href="$url">$url</a><br>";
}
mysql_free_result($result);
/******************************************/
$nombre=ceil($nrows/($limit));
if($debut>0) // affiche la page précedente
{
echo "<a href='rechercher.php?recherche=php$recherche&choix=$choix&debut
=".($debut-$limit)."'>Precedent</a>";
}
echo "<br/>$debut -- $limit<br/>\n";
if (($debut+$limit)<$nrows)
{
echo "<a href='search.php?recherche=php$recherche&operateur=
$operateur&debut=".($debut+$limit)."'>Suivant</a> ";
}
}
}
}
else
{
echo("<center><br><b>Entrer un mot</b></center>");
}
?>
Et voilà, j'espere que c'est ce que tu veux
Merci beaucoup cher ami Coca25
, ça marche nikel !
Mais juste une dernière petite affaire de design.
Comment je peux faire en sorte que lorsqu'on clique sur un lien, le lien en question change de couleur, comme dans le autres moteurs de recherche. Comme ca, on saura sur quel numéro de page
on est .
J'espère que tu comprens ce que je veux dire
, ça marche nikel !Mais juste une dernière petite affaire de design.
Comment je peux faire en sorte que lorsqu'on clique sur un lien, le lien en question change de couleur, comme dans le autres moteurs de recherche. Comme ca, on saura sur quel numéro de page
on est .
J'espère que tu comprens ce que je veux dire
ou alors en bas de page tu as la boucle for() ,(ou while) qui affiche
page : 1,2,3
je pense que en faisant une condition
$i=0;
for(i = 0; $i < $nombreDePage)
{
if($pageActuelle == $i)
{
$couleur = '<font color="#FFFFFF">' . $i . '</font>';
}
else
{
$couleur = $i;
}
echo '<a href="taPage.php?page='.$i.'">' . $color . '</a> ';
}
Moi je vient d'essayer sa marche toi tu n'a qua modifier avec tes variables et ta couleur voulu
page : 1,2,3
je pense que en faisant une condition
$i=0;
for(i = 0; $i < $nombreDePage)
{
if($pageActuelle == $i)
{
$couleur = '<font color="#FFFFFF">' . $i . '</font>';
}
else
{
$couleur = $i;
}
echo '<a href="taPage.php?page='.$i.'">' . $color . '</a> ';
}
Moi je vient d'essayer sa marche toi tu n'a qua modifier avec tes variables et ta couleur voulu
Je ne parle pas de la couleur du lien qui par défaut devient blue une
fois qu'on clique dessus, mais je parle plutôt de la page sur laquelle on est présentement ex :"1" qui doit être par exemple
de couleur noire et qui ne doit plus être un hyperlien.
Ex sur: "http://fr.search.yahoo.com/"
Si tu fait une recherche, il va t'afficher la première
page avec numéro "1" . et comme tu peux constater, le numéro 1
n'est plus un hyperlien, et ca couleur (noire) est différente des autres numéros. Comme ça, on sait sur quel page on est présentement.
Je vais allez tester ce que vous venez de m'écrire, et je vous reviens
fois qu'on clique dessus, mais je parle plutôt de la page sur laquelle on est présentement ex :"1" qui doit être par exemple
de couleur noire et qui ne doit plus être un hyperlien.
Ex sur: "http://fr.search.yahoo.com/"
Si tu fait une recherche, il va t'afficher la première
page avec numéro "1" . et comme tu peux constater, le numéro 1
n'est plus un hyperlien, et ca couleur (noire) est différente des autres numéros. Comme ça, on sait sur quel page on est présentement.
Je vais allez tester ce que vous venez de m'écrire, et je vous reviens
Lassé par la pub ? Créez un compte
- Contenus similaires :
Tags :
- ForumScript php pour affichage page par page
- ForumProblème affichage page php
- ForumProblem affichage page php
- ForumAffichage par page php mysql
- ForumProbleme affichage page php formualaire ie
- ForumAffichage par page php
- ForumAffichage par page en php
- ForumPb affichage page php ie - firefox
- ForumAccelerer affichage page php sql
- ForumProbleme affichage page php
- Voir plus