begin process at 2012 05 31 07:04:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

Probleme pagination sur script recherche


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

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 &agrave; 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&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;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 &agrave; 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&eacute;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 &agrave; 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&eacute;s: <input type="checkbox" name="surligner" value="true" <?php if($surligner){echo 'checked="checked"';} ?> /><br />
<input type="submit" value="Rechercher" />
</form>
<h2>R&eacute;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 &agrave; 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&eacute;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

McGyver59

Personne ne peux m'aider????


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


Nos sponsors


Sondage...

Comparez les prix

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,794 sec (3)

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