Modifier la page (achat/recherche.php) - [Peel-Shopping v2.9.3]

6 messages dans ce sujet

Posté(e) · Signaler ce message

Houla ! ... je l'avais oublié, celle-là ! ;)

• Cette page (achat/RECHERCHE.PHP) fonctionne très mal, voire plante carrément quand on a plusieurs "pages" de résultats trouvées ! ... le lien "Page suivante" donne un beau "404-page non trouvée" (...ou "No input file specified" en PHP) et les "Pages : 1 2 3..." ne font absolument rien.

Joliiii :(

Alors voilà les corrections à apporter à cette page pour qu'elle fonctionne pleinement :

---------- 1°) Donner les bon liens

- dans le fichier original PEEL v2.9.3, vous avez : (en fin de fichier)

print("<a class=\"petit\" href=\"recherche.php?motclef=".$_GET['motclef']."&start=".($start-$nb)."\">Page précédente</a>");

} 

$result=mysql_query("SELECT COUNT(*) FROM peel_produits WHERE nom LIKE '%" . addslashes($_GET['motclef']) . "%' "); 

$row=mysql_fetch_row($result); 

if($row[0]>($start+$nb)) 

{ 

if($start) 

{print(" / ");} 

print("<a class=\"petit\" href=\"recherche.php?motclef=".$_GET['motclef']."&start=".($start+$nb)."\">Page suivante</a>");
>> Vous complètez comme suit : (en gras) print("<a class=\"petit\" href=\"$wwwroot/achat/recherche.php?motclef=.$_GET['motclef]."&start=".($start-$nb)."\">Page précédente</a>"); } $result=mysql_query("SELECT COUNT(*) FROM peel_produits WHERE nom LIKE '%" . addslashes($_GET['motclef']) . "%' "); $row=mysql_fetch_row($result); if($row[0]>($start+$nb)) { if($start) {print(" / ");} print("<a class=\"petit\" href=\"$wwwroot/achat/recherche.php?motclef=.$_GET['motclef]."&start=".($start+$nb)."\">Page suivante</a>"); ---------- 2°) Ça ne plante plus ... mais ça ne marche toujours pas ! Le lien "Page suivante" ne plante plus, mais ne fait rien ... et "1 2 3..." font toujours rien ! :rolleyes: ... ben alors, oukilé le pb ? :huh: Il est dans l'initialisation de la variable $start, vers le début du fichier ... - dans le fichier original PEEL v2.9.3, vous avez :
$nb=10; //nombre d'enregistrement par page 

if(!isset($start)) {$start=0;}
>> C'est pas bon, $start vaut toujours 0 ... vous remplacez par : if (!isset($_GET['start'])) {$start=0;} else {$start = $_REQUEST['start'];} ---------- 3°) Soyons logiques et cohérents ! - dans le fichier original PEEL v2.9.3, vous avez :
**********(juste sous la ligne if(!isset.... qu'on vient de modifier)**********

$resultat = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" .  addslashes($_GET['motclef']) . "%' LIMIT $start,$nb");


****... et vers la fin du fichier, juste avant //Affichage des pages, qu'on a modifié au 1°)****


$result=mysql_query("SELECT COUNT(*) FROM peel_produits WHERE nom LIKE '%" . addslashes($_GET['motclef']) . "%' ");

... C'est pas logique : le 1ère requête (plus générale car tenant compte des descriptifs produits) trouve PLUS de résultats qu'il n'en est compté par la 2ème (moins générale, pas les descriptifs) pour l'affichage des différentes pages ! :)

>> Vous complètez la 2ème requête comme suit (comme la 1ère, en fait) : (en gras)

$result=mysql_query("SELECT COUNT(*) FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" . addslashes($_GET['motclef']) . "%' ");

---------- 4°) Les cerises sur le gateau : :)

• Bon, maintenant c'est OK ... les liens de changement de page fonctionnent ... sauf que ce ne sont pas des pages que l'on fait défiler, mais des "paquets" de (x) produits parmis (n). Alors il serait quand même plus indiqué de remplacer les intitulés "Page suivante" & "Page précédente" par "Produits suivants" & "Produits précédents", non ?

>> Alors rendez-vous au 1°) pour changer ces intitulés

• Enfin, il m'a semblé plus qu'intéressant d'indiquer "en clair" le total des produits trouvés, vous ne trouvez pas ? ;)

- Pour cela, sous la 1ère requête vue au 3°) (qui affecte $resultat), vous rajoutez la même requête mais plus limitée à $nb produits (on enlève le paramètre LIMIT final) que vous affectez à une variable ($resultatot) :

$resultat = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" . addslashes($_GET['motclef']) . "%' LIMIT $start,$nb");

$resultatot = mysql_query("SELECT id, reference, nom FROM peel_produits WHERE etat = '1' AND nom LIKE '%" . addslashes($_GET['motclef']) . "%' OR descriptif LIKE '%" . addslashes($_GET['motclef']) . "%' ");

- Ensuite, sous le tableau d'affichage des résultats de la recherche et juste avant les liens de navigation "Produits suivants/précédents" , vous insérez la ligne suivante (indiquée en gras, en italique ce sont les lignes existantes) :

<?php

//Boutons précédent et suivant

echo "<font class=\"normal\">[<b>".mysql_num_rows($resultatot)."</b> produit(s) trouvé(s) contenant <em>' ".addslashes($_GET['motclef'])." '</em>  dans le Nom ou le Descriptif]<br /><br /></font>";

if($start)

{

>> Cela affichera systématiquement (qu'il y ait des pages de suite ou non), sous le tableau d'affichage des résultats de recherche, le nombre total de résultats trouvés, avec une phrase comme suit :

[x produit(s) trouvé(s) contenant 'mot-clé' dans le Nom ou le Descriptif]

--------------------------------------------------------------------------------------------------------------

• Voilà encore un post bavard ;) mais qui devrait convenir à tout le monde, non ?

Ivan

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

mais que fais tu des caractères accentués qui ne passent pas dans l'url ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

mais que fais tu des caractères accentués qui ne passent pas dans l'url ?

Salut paulanna,

Arf ! ;) ... j'ai déjà vu ce pb évoqué dans ce forum, mais je ne le comprend pas et ne le rencontre pas ... enfin il ne me créé pas de dysfonctionnement.

• Tu veux parler des url qui font la recherche sur le mot clé, c'est ça ? (...recherche.php?motclef="...")

Moi, si je recherche des mots avec caractères accentués, effectivement y'a des trucs bizarres qui passent dans l'url (comme %E9 pour é, %E8 pour è, %E0 pour à, etc...) mais qui ne gênent en rien la validité des résultats obtenus pour la recherche ! :rolleyes:

Alors, il y a peut-être des problèmes liés aux types de Navigateurs ? ... ou à la version de ceux-ci ? ... je sais pô ! :huh:

• Essaie pour vérifier sur mon url-boutique : http://www.dynavive/Boutique

- recherche sur "régulateur" me donne bien (chez moi) 8 résultats, ce qui est correct.

- recherche sur "conductimètre" me donne bien (chez moi) 1 résultat, ce qui est correct.

>> Ce test m'intéresse au plus haut point. Merci de le faire, paulanna, et de me communiquer ici le résultat obtenu, stp...

Je veux comprendre :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Salut Ivan,

tout se passe bien. Normal: L'appel du set de caractères est le bon !

Juste un truc: attention à ton "revisit-after", la plupart des robots ne prennent pas en compte en dessous de 7 days.

Alain ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Salut Ivan,

tout se passe bien. Normal: L'appel du set de caractères est le bon !

Juste un truc: attention à ton "revisit-after", la plupart des robots ne prennent pas en compte en dessous de 7 days.

Alain :)

Je sais ... on le dit ... mais va regarder PEEL.FR ... avec un peu d'attention, c'est une mine ! ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Salut paulanna,

Arf ! ;) ... j'ai déjà vu ce pb évoqué dans ce forum, mais je ne le comprend pas et ne le rencontre pas ... enfin il ne me créé pas de dysfonctionnement.

• Tu veux parler des url qui font la recherche sur le mot clé, c'est ça ? (...recherche.php?motclef="...")

Moi, si je recherche des mots avec caractères accentués, effectivement y'a des trucs bizarres qui passent dans l'url (comme %E9 pour é, %E8 pour è, %E0 pour à, etc...) mais qui ne gênent en rien la validité des résultats obtenus pour la recherche ! :rolleyes:

Alors, il y a peut-être des problèmes liés aux types de Navigateurs ? ... ou à la version de ceux-ci ? ... je sais pô ! :huh:

• Essaie pour vérifier sur mon url-boutique : http://www.dynavive/Boutique

- recherche sur "régulateur" me donne bien (chez moi) 8 résultats, ce qui est correct.

- recherche sur "conductimètre" me donne bien (chez moi) 1 résultat, ce qui est correct.

>> Ce test m'intéresse au plus haut point. Merci de le faire, paulanna, et de me communiquer ici le résultat obtenu, stp...

Je veux comprendre :)

oui bien sur le résultat est correct masi les caractères ne sont pas transformé et cela me pose problème.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping