Redirection automatique vers fiche produit

17 messages dans ce sujet

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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..

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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();

}

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

: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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

: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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

: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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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,

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

: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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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 .........

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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:

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Content d'avoir pu vous aider :angry:

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

Cordialement,

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