Sign in to follow this  
Followers 0

Redirection automatique vers fiche produit

17 posts in this topic

Posted · Report post

Bonjour et encore merci a tous pour vos nombreuses explications.

voila... je n'ai dans qu'un seul produit sur une rubrique specifiée dans le menu comme (ex: petite culotte rose)

quand je clique sur ce bouton ..je me retrouve donc dans sur la page "achat/index.php?catid=1" ou le produit se retrouve seul.

Puisque je n'ai que ce produit là j'aurais aimé que le clique sur le bouton m'amene directement à "achat/produit_details.php?id=1" sa page dédiée avec toute ses infos concernant le produit.

est ce possible en modifiant le code php?

bise a tous

Isabelle

Share this post


: post
Share on other sites

Posted · Report post

Bonjour ISabelle,

Voici en quelques lignes la manière de s'y prendre.

- Dans la page /achat/index.php, à l'endroit approprié, faites une requête du type :

"SELECT count(id) AS nb_products FROM peel_produit p

INNER JOIN peel_produits_categories pc ON pc.id_produit = p.id

WHERE pc.id_categorie =". intval($_GET['id'])

et récupérez le résultat dans un tableau $result.

Alors, si $result['nb_resultats'] = 1, vous pouvez rediriger l'utilisateur fers le produit en question.

Cordialement,

Share this post


: post
Share on other sites

Posted · Report post

Bonjour et encore merci a tous pour vos nombreuses explications.

voila... je n'ai dans qu'un seul produit sur une rubrique specifiée dans le menu comme (ex: petite culotte rose)

quand je clique sur ce bouton ..je me retrouve donc dans sur la page "achat/index.php?catid=1" ou le produit se retrouve seul.

Puisque je n'ai que ce produit là j'aurais aimé que le clique sur le bouton m'amene directement à "achat/produit_details.php?id=1" sa page dédiée avec toute ses infos concernant le produit.

est ce possible en modifiant le code php?

bise a tous

Isabelle

Merci jean Hervé..des demain je fais la modif.... merci merci merci...je vous tiens au courant..

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Jean Hervé, helas je ne comprends pas votre message, en effet j'ai cru que j'arriverai a dechiffrer ce bout de code, il en est rien... Je n'arrive a peine a modifier quelques éléments et là, j'avoue que je suis incapable de faire cette modif.

Pouvez vous m'aider en etant plus precis.

Merci d'avance

Ps , je pense que cette modif pourrait etre utile à l'ensemble de la communauté Peel

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Isabelle,

Voici la démarche plus précise, en faisant plus simple que ce que propose Jean-Hervé, on ne va pas regarder le nombre de produits dans la catégorie mais simplement faire la redirection : dans le fichier achat/index.php, en début de fichier après chargement des include :

if(!empty($_GET['catid']) && $_GET['catid']==1){

header('Location: ' . $GLOBALS['wwwroot'] . '/achat/produit_details.php?id=1');

header("Connection: close");

die();

}

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Gilles, j'ai essayé ta modif mais helas j'ai un message d'erreur. serait-ce parceque je le positionne mal?

Warning: Cannot modify header information - headers already sent by (output started at /homepages/13/d339406518/htdocs/A_peel_shopping/modeles/blog/haut.php:36) in /homepages/13/d339406518/htdocs/A_peel_shopping/achat/index.php on line 48

Warning: Cannot modify header information - headers already sent by (output started at /homepages/13/d339406518/htdocs/A_peel_shopping/modeles/blog/haut.php:36) in /homepages/13/d339406518/htdocs/A_peel_shopping/achat/index.php on line 49

je l'ai mis ici sans rien modifier autour.

include("$repertoire_modele/categorie.php");

echo "</div>";

}

$qid_c = recupere_sous_categorie(vn($_GET['catid']));

if(!empty($_GET['catid']) && $_GET['catid']==1){

header('Location: ' . $GLOBALS['wwwroot'] . '/achat/produit_details.php?id=1');

header("Connection: close");

die();

}

if (mysql_num_rows($qid_c) > 0) {

$nb_cellules = mysql_num_rows($qid_c);

$nb_colonnes = 3;

$j = 0;

echo "<div>";

include("$repertoire_modele/sous_categorie.php");

echo "</div>";

}

Merci encore pour ton aide precieuse.

Isabelle

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Isabelle,

L'erreur PHP t'indique que du HTML a déjà été envoyé par ton script avant que tu ne fasses la redirection.

Il faut que tu mettes le code après le chargement de configuration.inc.php, et avant le reste.

Gilles

Share this post


: post
Share on other sites

Posted · Report post

:angry: Merci gilles, je comprends mieux la logique de ton code maintenant que cela marche. merci encore...

c'est super gentil de m'avoir aidé.

mais j'ai encore helas une autre question, le codage de jean Hervé permetait il que cela soit automatique pour toutes les pages?

bisou

Isabelle

Share this post


: post
Share on other sites

Posted · Report post

La logique de Jean-Hervé est de regarder automatiquement si il n'y a qu'un seul produit dans une page de catégorie (quelle que soit cette page de catégorie), et si oui de rediriger vers la page de ce produit.

Share this post


: post
Share on other sites

Posted · Report post

:angry: Bonjour, c'est dommage que jean Hervé n'est pas développé plus precisement cette fonction car elle pourrait etre la function standard du fonctionnement de pell shopping....je m'en veux de ne pas savoir coder en php...grrr.

pourrais-tu si cela n'est pas long a coder développer cette function...allez dis oui..(sourire)

biz

magalie

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Magalie, Bonjour Isabelle,

Voici le code que j'écrirais pour vérifier automatiquement si il n'y a qu'un seul produit dans une page de catégorie, et dans ce cas rediriger vers ce produit.

Le code que je transmets ici est écrit pour PEEL SHOPPING 5.71, et n'est pas testé.

Dans la page /achat/index.php, après :

include("../configuration.inc.php");

$catid = (!isset($_GET['catid']) ? 0 : intval($_GET['catid']));[/codebox]

écrire --->

[codebox]$count_products_query = query("SELECT id
FROM peel_produit p
INNER JOIN peel_produits_categories pc ON pc.id_produit = p.id
WHERE pc.id_categorie =". intval($catid));

if (num_rows($count_products_query) == '1') {
//S'il y a exactement un produit dans la categorie
if ($count_products_result = fetch_assoc($count_products_query)) {
header('Location: ' . $GLOBALS['wwwroot'] . '/achat/produit_details.php?id='.$count_products_result['id']);
header("Connection: close");
die();
}
}

A tester, bien entendu :angry:

Cordialement

Share this post


: post
Share on other sites

Posted · Report post

:angry: Bonsoir Jean-Hervé, je viens de faire un essai..helas ce message d'erreur s'affiche :

Notice: Undefined variable: count_products_query in /homepages/13/d339406518/htdocs/peel_57_dur/achat/index.php on line 18

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /homepages/13/d339406518/htdocs/peel_57_dur/lib/fonctions/database.php on line 80

c'est dommage je trouvais ce code séduiant.. (et quand j'ouvre database.php je ne comprends pas pourquoi cela bugg (normal j'y comprends rien))

voila...

biz

Cordialement Magalie

voir l'exemple :

http://www.happesproductions.com/peel_57_dur

Share this post


: post
Share on other sites

Posted · Report post

Bonjour Magalie,

Voici une version corrigé du code :

$count_products_query = query("SELECT id
FROM peel_produit[b]s[/b] p
INNER JOIN peel_produits_categories pc ON pc.produit_id = p.id
WHERE pc.categorie_id =" . intval($catid));

if (num_rows($count_products_query) == '1') {
// S'il y a exactement un produit dans la categorie
if ($count_products_result = fetch_assoc($count_products_query)) {
header('Location: ' . $GLOBALS['wwwroot'] . '/achat/produit_details.php?id=' . $count_products_result['id']);
header("Connection: close");
die();
}
}[/code]

Cordialement,

Share this post


: post
Share on other sites

Posted · Report post

:angry: Bonjour Jean Hervé , c'est gentil de te donner tout ce mal...et de prendre sur ton temps pour le bien de chacun..

je me suis empressée d'y insérer ta correction helas, cette fois ci il y a un autre message d'erreur..plus enigmatique que le precedent..il est dit :

Une erreur de connexion à la base s'est produite SELECT id FROM peel_produitss p INNER JOIN peel_produits_categories pc ON pc.produit_id = p.id WHERE pc.categorie_id =1.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's p INNER JOIN peel_produits_categories pc ON pc.produit_id = p.id WHERE ' at line 2je pensais que cela été du au fait que tu ais oublié le "s" a "peel_produits" mais cela n'est pas le cas ...malgres la correction le message reste le meme.....c'est dommage j'aurais tellement aimé corriger ta petite erreur ...

Cordialement biz

Magalie

Share this post


: post
Share on other sites

Posted · Report post

Bonsoir Magalie,

Apparemment tu as fait un copier coller du code entre crochets qu'a mis Jean-Hervé pour mettre en gras le s qui manquait

=> il faut que tu retires ce code entre crochets pour obtenir ..... FROM peel_produits p .........

Share this post


: post
Share on other sites

Posted · Report post

Hurra! Hurra! :angry: ça marche! Merci Jean-hervé merci Gilles..whaoo

Je me permets de redonner la marche a suivre:

Dans le cas ou vous n'auriez qu'un seul produit dans une rubrique

Pour aller directement a "produit_details.php" sans passer par "index.php"

- dans "achat/index.php"

- apres :

include("../configuration.inc.php");

$catid = (!isset($_GET['catid']) ? 0 : intval($_GET['catid']));

- copier :

$count_products_query = query("SELECT id

FROM peel_produits p

INNER JOIN peel_produits_categories pc ON pc.produit_id = p.id

WHERE pc.categorie_id =" . intval($catid));

if (num_rows($count_products_query) == '1') {

// S'il y a exactement un produit dans la categorie

if ($count_products_result = fetch_assoc($count_products_query)) {

header('Location: ' . $GLOBALS['wwwroot'] . '/achat/produit_details.php?id= . $count_products_result['id]);

header("Connection: close");

die();

}

}

et encore merci a Jean-Hervé et Gilles !!! :huh:

Share this post


: post
Share on other sites

Posted · Report post

Content d'avoir pu vous aider :angry:

N'hésitez pas à poster de nouveau en cas de souci,

Cordialement,

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

Twitter Advisto ecommerce

Facebook PEEL Shopping