Accueil > Forum > > > > Probleme pagination sur script recherche
Probleme pagination sur script recherche
mercredi 18 janvier 2012 à 10:06:38 |
Probleme pagination sur script recherche

McGyver59
|
Bonjour
Je reviens vers vous car j'ai un soucis pour faire une pagination. Chaque fois que je met un code de pagination cela m'affiche plus de 5000 pages j'ai tout essayé et pas moyen d'y arriver j'essaie avec ce tuto http://antoine-herault.developpez.com/tutoriels/php/pagination-automatique-en-php/ mais voila cela m'affiche trop de page
Voici mon code
Code PHP : <?php
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//On determine l'expression a rechercher
if(isset($_GET['search']) && strlen($_GET['search'])>2)
{
$rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
//On determine le type de recherche
if(isset($_GET['type']))
{
if($_GET['type']=='un')//Un des mots
{
$type = 1;
}
elseif($_GET['type']=='all')//Tout les mots
{
$type = 2;
}
else//L'expression exacte
{
$type = 3;
}
}
else
{
$type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
$surligner = false;
}
else
{
$surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT image1, name, keywords FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' keywords LIKE "%'.$mot.'%" OR (name LIKE "%'.$mot.'%") OR';
}
$req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' (online = \'yes\' AND (keywords LIKE "%'.$mot.'%") OR (name LIKE "%'.$mot.'%")) AND';
}
$req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
//$req .= 'keywords LIKE "%'.$rec.'%"';
$req .= ' (online = \'yes\' AND (keywords LIKE "%'.$rec.'%") OR (name LIKE "%'.$rec.'%"))';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression à rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherchés: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>Résultats</h2>
<table>
<tr>
<th>Affiche</th>
<th>Titre</th>
<th>Mots clefs</th>
</tr>
<?php
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
<tr>
<td><?php echo '<img src="uploads/images/'.$dnn['image1'].'" alt="Help" width="100" />'; ?></td>
<td><?php echo $dnn['name']; ?></td>
<td><?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
if($type==3)
{
echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne l'expression exacte
}
else
{
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne les mots cles de la recherche
}
}
else
{
echo $dnn['keywords'];//On ne surligne pas
}
?></td>
</tr>
<?php
}
?>
</table>
<?php
}else{
?>
<form action="" method="get">
Expression à rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherchés: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<?php
}
?>
merci de votre aide
|
|
mercredi 18 janvier 2012 à 10:39:42 |
Re : Probleme pagination sur script recherche

cod57
|
bonjour
$req .= ' order by id asc'; // limit ?
comment se présente ta requête de pagination
 Bonne programmation !
|
|
mercredi 18 janvier 2012 à 11:05:22 |
Re : Probleme pagination sur script recherche

McGyver59
|
desolé je ne l'ai pas mis voici le code avec la pagination merci de ton aide
Code PHP : <?php
mysql_connect('localhost','users','mot de passe');
mysql_select_db('base de donnée');
//pagination
$messagesParPage=2; //Nous allons afficher 5 messages par page.
//Une connexion SQL doit être ouverte avant cette ligne...
$retour_total=mysql_query('SELECT COUNT(*) AS total FROM download'); //Nous récupérons le contenu de la requête dans $retour_total
$donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
$total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
//Nous allons maintenant compter le nombre de pages.
$nombreDePages=ceil($total/$messagesParPage);
if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
{
$pageActuelle=intval($_GET['page']);
if($pageActuelle<$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
{
$pageActuelle=$nombreDePages;
}
}
else // Sinon
{
$pageActuelle=1; // La page actuelle est la n°1
}
$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
//On determine l'expression a rechercher
if(isset($_GET['search']) && strlen($_GET['search'])>2)
{
$rec = mysql_real_escape_string(htmlspecialchars($_GET['search']));
//On determine le type de recherche
if(isset($_GET['type']))
{
if($_GET['type']=='un')//Un des mots
{
$type = 1;
}
elseif($_GET['type']=='all')//Tout les mots
{
$type = 2;
}
else//L'expression exacte
{
$type = 3;
}
}
else
{
$type = 1;//type par defaut: L'expression exacte
}
//On determine si on doit surligner les mots dans les resultats
if(!isset($_GET['surligner']) or $_GET['surligner']!='true')
{
$surligner = false;
}
else
{
$surligner = true;
}
//On dertermine les identifiants, les noms et les informations des utilisateur
$req = 'SELECT * FROM download WHERE ';
if($type==1)
{//ayant un des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' keywords LIKE "%'.$mot.'%" OR (name LIKE "%'.$mot.'%") OR';
}
$req .= ' 1=0';
}
elseif($type==2)
{//ayant tout des mots dans leurs informations
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= ' (online = \'yes\' AND (keywords LIKE "%'.$mot.'%") OR (name LIKE "%'.$mot.'%")) AND';
}
$req .= ' 1=1';
}
else
{//ayant l'expression exacte dans leurs informations
//$req .= 'keywords LIKE "%'.$rec.'%"';
$req .= ' (online = \'yes\' AND (keywords LIKE "%'.$rec.'%") OR (name LIKE "%'.$rec.'%"))';
}
//Les utilisateur seront ranges par identifiant en ordre croissant
$req .= ' order by id asc LIMIT '.$premiereEntree.', '.$messagesParPage.'';
$requete = mysql_query($req);
//Le formulaire de recherche
?>
<form action="" method="get">
Expression à rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherchés: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>Résultats</h2>
<table>
<tr>
<th>Affiche</th>
<th>Titre</th>
<th>Mots clefs</th>
</tr>
<?php
echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
//On va faire notre condition
if($i==$pageActuelle) //Si il s'agit de la page actuelle...
{
echo ' [ '.$i.' ] ';
}
else //Sinon...
{
echo ' <a href="livredor.php?page='.$i.'">'.$i.'</a> ';
}
}
echo '</p>';
//On affiche les resultats
while($dnn = mysql_fetch_array($requete))
{
?>
<tr>
<td><?php echo '<img src="uploads/images/'.$dnn['image1'].'" alt="Help" width="100" />'; ?></td>
<td><?php echo $dnn['name']; ?></td>
<td><?php
if($surligner)//Si il faut surligner les mots, on les surligne
{
if($type==3)
{
echo preg_replace('#('.preg_quote($rec).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne l'expression exacte
}
else
{
echo preg_replace('#('.str_replace(' ','|',preg_quote($rec)).')#i', '<strong>$1</strong>', $dnn['keywords']);//On surligne les mots cles de la recherche
}
}
else
{
echo $dnn['keywords'];//On ne surligne pas
}
?></td>
</tr>
<?php
}
?>
</table>
<?php
}else{
?>
<form action="" method="get">
Expression à rechercher: <input type="text" name="search" value="<?php echo $rec; ?>" /><br />
Type de recherche: <input type="radio" name="type" value="un"<?php if($type==1){echo 'checked="checked"';} ?> /> Un des mots <input type="radio" name="type" value="all"<?php if($type==2){echo 'checked="checked"';} ?> /> Tout les mots <input type="radio" name="type" value="exacte"<?php if($type==3){echo 'checked="checked"';} ?> /> Expression exacte<br />
Mettre en gras les mots recherchés: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<?php
}
?>
|
|
mercredi 18 janvier 2012 à 19:45:59 |
Re : Probleme pagination sur script recherche
|
Cette discussion est classée dans : req, type, mots, expression, keywords
Répondre à ce message
Sujets en rapport avec ce message
menu PHP [ par larbi1980 ]
Salut,voila jaimerais faire un menu en php a partir dune requete SQL ainsi mon menu safficheras sur mon site Voici ma requete :$req = "SELECT id_type,
Regex "sauf cette expression" [ par mentral ]
Bonjour.Le problème : je dois isoler au sein d'un fichier "template" des structures de type : ... {instruction template} ... <br
Recherche dans une bdd [TITRE MODERE CAR PEU EXPLICITE!] [ par milkasoprano ]
Bonjour, Voila cette apres midi jai cherché une solution a mon probleme concernant le fait de faire une recherche a partir dune base de donnée et un c
Problèmes de REGEX [ par bobino75 ]
Bonjour à vous, Je commence à travailler avec les REGEX et je me retrouve avec quelques problèmes. Je fais une recherche dans une base de données av
extraire des mots clés d'un texte [ par pifethercule ]
Bonjour, j'essaye d'extraire des mots clés de textes... mes mots clés sont dans une variable "$keywords" tous séparés par un pipe "|", pour faire des
Moteur de recherche avec plusieurs mots clés [ par ptiniko ]
Bonjour, J'ai un problème concernant une recherche en PHP avec plusieurs mots clés.function search_friends($keywords, $debut, $fin) => $keywords es
aide pour correction de mon cde php [ par abiziane ]
je veux creer un site web sur lequel j'aimerais que le internautes puissent uploader des fichier comme les fichier word ,pdf , image...j' ai fait le c
Expression régulière [ par peug ]
Bonjour, Je débute en Expression régulière et je bute sur ça : Si j'ai une chaine de caractères comme ceci : AB>A comment changer A, et seulement A,
fonction php + supprimer des mots dans une chaine [ par hadjiphp ]
Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : je cherche une fonction
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|