begin process at 2012 05 28 17:16:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

besoin d'aide pour pagination d'un moteur de recherche...


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

besoin d'aide pour pagination d'un moteur de recherche...

jeudi 24 mai 2007 à 20:27:25 | besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club
alors voila,

j'ai créé un moteur de recherche pour partitions.
aujourd'hui la base contient 35000 références;pour une recherche si je tombe sur1200 résultats...tout afficher sur une meme page, c'est pas super!
 du coup j'aimerai faire un affichage 50, 100, 250 ou 500 résultats pas page.
j'ai regardé pas mal de source et de tutoriaux, mais je n'ai pas réussi à les mettre en place...
quelqu'un peut m'aider? c'est vraiment important et je ne m'en sors pas!

merci d'avance!!!
 ps: c'est un probleme si je n'ai pas un ID défini dans ma table?

ma page index.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>moteur recherches</title>

</head>
<body>
<link href="aam_styles.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.Menutext {
    FONT-SIZE: 8pt; COLOR: #ffffff; FONT-FAMILY: Verdana,Helvetica,sans-serif
}
.Menutext:link {
    COLOR: #ffffff
}

.Menutext:visited {
    COLOR: #ffffff
}
.Style1 {color: #DA4A19}

</style>
                              <form  method="post">
                                   <table width="769" border="0">
                                        <tr>
                                             <td><font size="2"><span class="Style1">Auteur<font face="Verdana, Arial, Helvetica, sans-serif"> / Compositeur </font><font face="Verdana, Arial, Helvetica, sans-serif"></font></span></font></td>
                                             <td><span class="Style1"><font size="2">Titre</font></span></td>
                                             <td><span class="Style1"><font size="2">Editeur</font></span></td>
                                             <td><span class="Style1"><font size="2">Instrument / Genre</font></span></td>
                                             <td rowspan="2" valign="bottom">
                                                  <input name="submit" type="submit" style="font-size: 12px; position: relative; " value="Rechercher" />
                                             </td>
                                        </tr>
                                        <tr>
                                             <td>
                                                  <input type="text" name="auteur" size="40" style="font-size: 12px;" />
                                             </td>
                                             <td>
                                                  <input type="text" name="titre" size="40" style="font-size: 12px;" />
                                             </td>
                                             <td>
                                                  <input type="text" name="editeur" size="40" style="font-size: 12px;" />
                                             </td>
                                             <td>
                                                  <input type="text" name="instrument" size="40" style="font-size: 12px;" />
                                             </td>
                                        </tr>
                                   </table>
                              </form>
<?php

//on charge le fichier de connexion à la table
include('connexion.php');

//calcule le nbre d'élément de la table
$total_table = mysql_num_rows(mysql_query("SELECT AR_Ref FROM am_parts"));

// si c'est le premier appel de la variable auteur
if(!isset($_POST['auteur']))
         {
         echo "<br><br><br><center><font face='Arial, Helvetica, sans-serif' size='3' color='#000000'>Bienvenue sur le module de partitions ARPEGES.
         <br><br>A ce jour, vous avez accès à
         <b> $total_table </b> références de partitions.
         <br><br> La recherche peut s'effectuer sur 1 à 4 critères.</center>";
return;
     }

//on relie les variables
$auteur = $_POST['auteur'];
$titre= $_POST['titre'];
$editeur= $_POST['editeur'];
$instrument= $_POST['instrument'];

include('selection.php');

switch($selection){

case 1 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%') ORDER BY auteur , lien ";
$result = mysql_query ($query);
break;

case 2 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%') AND ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 3 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven  FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%') AND editeur LIKE '%$editeur%' ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 4 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven,AR_Ref,AR_Ref  FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%') AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 5 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven,AR_Ref,AR_Ref  FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%')  AND ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') AND editeur LIKE '%$editeur%' ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 6 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%')  AND titre_francais LIKE '%$titre%' AND titre_version_originale LIKE '%$titre%' AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 7 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven  FROM am_parts WHERE (auteur LIKE '%$auteur%' or AR_design like '%$auteur%') AND editeur LIKE '%$editeur%' AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') AND ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 8 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE (titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%' ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 9 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven  FROM am_parts WHERE ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') AND editeur LIKE '%$editeur%' ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 10 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven  FROM am_parts WHERE ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 11 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven  FROM am_parts WHERE ((titre_francais LIKE '%$titre%' OR titre_version_originale LIKE '%$titre%' )OR AR_design LIKE '%$titre%') AND editeur LIKE '%$editeur%' AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 12 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE editeur LIKE '%$editeur%' ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 13 :
$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE editeur LIKE '%$editeur%' AND(instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);
break;

case 14 :

$query = "SELECT Auteur,titre_francais,titre_version_originale,lien,instruments,editeur,dispo,AR_prixven FROM am_parts WHERE (instr LIKE '$instrument' OR instr LIKE '$instrument%') ORDER BY auteur, AR_design";
$result = mysql_query ($query);


break;

// si aucun champ n'est rempli
case 15 :
echo "<br><font face='Arial, Helvetica, sans-serif' size='3' color='#000000'><center>aucun champ n'est renseigné !</center></font>";return;
break;
}

//on teste le nombre de ligne que contient le résultat, s'il est vide c'est que la recherche a été infructueuse
if(!mysql_fetch_row($result)){
echo "aucun résultat";
exit();
}

// affichera le nombre d'enregistrements retournés"
echo "<font face='Arial, Helvetica, sans-serif' size='2' color='#000000'><blockquote>Votre recherche porte sur le(s) mot(s) clé(s) suivant(s) : <b> $auteur $titre $editeur $instrument </b>   </blockquote></font>";
//echo "<br>";
echo "<font face='Arial, Helvetica, sans-serif' size='2' color='#000000'>   <blockquote> Nombre de résultats pour votre requête : " . (mysql_num_rows($result)-1) ;
echo "   </blockquote>";

//variables pour le tableau
$nblignes = mysql_num_rows($result);
$nbchamps = mysql_num_fields($result);

function affiche_titre ($t1,$t2,$t3,$t4,$t5,$t6,$t7,$t8){
echo "<tr bgcolor='#DA4A19' align='center'>";
echo " <td width = '13%'><font size='2' color='#FFFFFF'>" .$t1.'</font></td>';
echo " <td width = '23%'><font size='2' color='#FFFFFF'>" .$t2.'</font></td>';
echo " <td width = '15%'><font size='2' color='#FFFFFF'>" .$t3.'</font></td>';
echo " <td width = '25%'><font size='2' color='#FFFFFF'>" .$t4.'</font></td>';
echo " <td width = '10%'><font size='2' color='#FFFFFF'>" .$t5.'</font></td>';
echo " <td width = '8%' ><font size='2' color='#FFFFFF'>" .$t6.'</font></td>';
echo " <td align='center' width = '2%'><font size='2' color='#FFFFFF'>" .$t7.'</font></td>';
echo " <td align='center' width = '4%'><font size='2' color='#FFFFFF'><strong>" .$t8.'</strong></font></td>';

echo "</tr>";
}
//on crée la table
echo "<table>";
affiche_titre("Auteur","Titre français","Titre original","Désignation","Instrument","Editeur"," Dispo"," € ");

//alterner les couleurs du tableau
function alterneCouleur ($couleur1, $couleur2){
static $couleur;
$couleur = ($couleur == $couleur1)? $couleur2 : $couleur1;
return $couleur;
}

$couleur1 = '#FFFCCB';
$couleur2 = '#FEEBBA';

//on teste pour connaitre le nombre de lignes
for($i=0; $i<$nblignes; $i++){

    $ligne = mysql_fetch_row($result);
    echo ?>
<tr bgcolor="<?php echo alterneCouleur($couleur1,$couleur2); ?>" >
     <?php ;
   
    for($j=0;$j< $nbchamps-2;$j++)
        {
        echo "<td valign='center' height='30px'><font face='Arial, Helvetica, sans-serif' size='1' color='#000000'>$ligne[$j]</font></td>";
        }
    if ($j=6){
            //echo "<td valign='middle' align ='center' height='30px'><font  size='1' ><b>$ligne[$j]</b></font>";
            echo "<td valign='middle' align ='center' height='30px'>";
            if($ligne[$j] == 0){
            echo "<IMG src='IMAGES/rouge.gif' /></td>";
            }
            elseif($ligne[$j] ==1){
            echo "<IMG src='IMAGES/orange.gif' /></td>";
            }
            else{
            echo "<IMG src='IMAGES/vert.gif' /></td>";
            }
        }
        if ($j=7){echo "<td valign='middle' align ='right' height='30px'><font face='Arial, Helvetica, sans-serif' size='2' color='#222299'><b>$ligne[$j]</b></font></td>";}

          
echo "</tr>";
}
echo "</table>";

//on se déconnecte de la table
mysql_close();
?>
</body>
</html>

jeudi 24 mai 2007 à 22:31:04 | Re : besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club
Faut pas avoir peur du script....!?
je compte sur quelqu'un...pitié!!!
vendredi 25 mai 2007 à 07:06:03 | Re : besoin d'aide pour pagination d'un moteur de recherche...

coucou747

Administrateur CodeS-SourceS
Salut,
$result = mysql_query ($query);

ca faut le sortir de ton switch, a te permet de faire ceci plus facilement :

$result = mysql_query ($query);
$nbr=mysl_fetch_result($result);
$result = mysql_query ($query.' LIMIT '.$lim1.', 10;');

et pour afficher ta pagination
for ($i=1; $i<$nbr;$i+=10)
    echo '<a href="...?...&lim='.$i.'">...'.$i.'</a>';

et tout en haut :

$lim1=(isset($_GET['lim1'])?intval($_GET['lim1'])-1:0);
Une recherche sur exalead vous aurait peut-etre evit
vendredi 25 mai 2007 à 08:48:13 | Re : besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club
ok merci, je vais tester tout ca et je tiens au courant!
vendredi 25 mai 2007 à 09:08:44 | Re : besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club
for ($i=1; $i<$nbr;$i+=10)
    echo '<a href="...?...&lim='.$i.'">...'.$i.'</a>';


 tu entends quoi pas les points de suspension?



mais de toute façon, j'ai déjà un probleme...

"   FATAL ERROR : call to undefined function : mysql_fetch_result() in index.php on line 200 "

vendredi 25 mai 2007 à 09:14:24 | Re : besoin d'aide pour pagination d'un moteur de recherche...

coucou747

Administrateur CodeS-SourceS
desole je voulais dire
mysql_num_rows
vendredi 25 mai 2007 à 10:01:01 | Re : besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club

il n'y a plus d'erreur qui s'affiche, mais par contre la pagination....

j'ai fait ce que tu m'as dit:
for ($i=1; $i<$nbr;$i+=10)
    echo '<a href="...?...&lim='.$i.'">...'.$i.'</a>';


mais ca m'affiche
...1...1...1...1...1...1...1...1...1... indéfiniment, jusqu'a ce que ca plante
"fatal error maximum execution time of 30seconds exceeded in index.php on line 226.
(c'est la boucle...)

et ca meme pour une requete ou j'ai 3résultats

il faut la placer à un endroit précis?

vendredi 25 mai 2007 à 11:00:18 | Re : besoin d'aide pour pagination d'un moteur de recherche...

witch32

Membre Club

je peux abuser d'un dernier conseil?

echo '<a href="...?...&lim='.$i.'">...'.$i.'</a>';


c'est quoi la ligne exact (avec toute les infos) que je dois faire pour cette ligne?
parceque j'ai tout essayer mais je ne vois pas ...
et je crois que c'est le truc qui fait que rien ne marche...

merci
vendredi 25 mai 2007 à 12:37:48 | Re : besoin d'aide pour pagination d'un moteur de recherche...

coucou747

Administrateur CodeS-SourceS
bon normalement, ca doit afficher un truc genre 1 - 2 - 3 .....

for ($i=1; $i<$nbr;$i+=10)
    echo '<a href="page.php?lim='.$i.'">'.$i.' - </a>';


ca t'affiches toutes les pages
affiche juste $nbr pour voir... cette variable est peut-etre mal deffinie ou a 0.... faut traiter le cas 0 aussi..


Cette discussion est classée dans : titre, query, like, auteur, ar


Répondre à ce message

Sujets en rapport avec ce message

Problème d'affichage de news. Aidez moi SVP. [ par WaNoU ThE EpSyLoN ] Bon alors à celui qui comprend mon problème je dis chapeau !J'explique. Je cherche à faire un gestionnaire de news pour cela il y a une page de saisie Besoin d'aide pour terminer un fichier [ par dcbastien ] bonjour.Plusieurs problèmes se pose et je ne peux pas me permettre de passer trop de temps dessus. Je vois donc vous voir en quête d'aide.Voici mon co Problème avec pagination php de résultats de requete sql [ par dieusurterre ] J'ai tenté d'appliquer le code donné dans le tuto sur la pagination... mais j'ai une erreur qui me revient concernant la ligne en rouge [$nb_enreg = m unexpected $end probleme [ par vez_from_hell ] bonjourj'ai un probleme dans mon code qui dit unexpected en on line 139je sais que c'est souvent à cause de } mais j'ai vérifié et je ne trouve rien. insertion des variable dans la base de donnée [ par greg975 ] bonjour à tous, debutant en programmation je suis entrain de metrre sur pieds un petit site pour cela j'ai crée un petit forum simple avec formulair Champ faisant référence à une autre classe. [ par finalspirit ] Bonjour,Je suis actuellement en DUT Informatique et on a appris à utiliser le Java. Je connais donc les classes.Je vois pas comment ça fonctionne sous Recherche WHERE LIKE [ par shadow1779 ] Bonjour,j'ai un petit soucis et j'me suis dis qu'avec un peu de chance quelqu'un pourrai m'aider... je fais un petit système de recherche utilisant Aj caractere générique [ par atolldecolombo ] bonjourje cherche à créer une recherche multi criterepetit problème quand je ne renseigne pas un des critère comment le remplacer par un carctere géné mon moteur recherche web : création de page d'idexation [ par astuces_jeux ] Bonjour,j'ai fait une page de résultats et j'ai peut-etre des erreurset j'aimerai décider qu'il y ai 15 réponses par pages et faires plusieurs page !! mon moteur recherche web : création de page d'idexation [ par astuces_jeux ] Bonjour,j'ai fait une page de résultats et j'ai peut-etre des erreurset j'aimerai décider qu'il y ai 15 réponses par pages et faires plusieurs page !!


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,342 sec (4)

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