Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Afficher les produits des sous catégories

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
bovitch
WRInaute discret
WRInaute discret

Inscrit le: 11 Juin 2004
Messages: 50

URL permanente de ce messagePosté le : Jeu Fév 07, 2008 20:23    Sujet du message: Afficher les produits des sous catégories

Bonjour,

j'ai des catégories qui ne contiennent que des sous-categories (pas de produits).
Lorquon est dans une catégorie mère, je souhaiterais afficher 10 produits aléatoirs issus des sous catégories.

C'est un casse tête pour moi, pouvez vous me guider ?

J'ai une table produits (avec id_produit) une table produit (avec id_cat, id_parent) et une table categorie_produits (avec id_produit, id_cat)

merce d'avance.
 
bovitch Visiter le site web du posteur
bixi
WRInaute discret
WRInaute discret

Inscrit le: 19 Sep 2007
Messages: 70

URL permanente de ce messagePosté le : Jeu Fév 07, 2008 21:41    Sujet du message: Afficher les produits des sous catégories

salut ..

Ca sent la requete récursive .. et la t'es pas couché surtout si il faut que je t'en explique le principe

en gros l'idée de la requete c'est ca :

SELECT p.*
FROM produits P
LEFT JOIN categories_produits CP ON P.id_produit = CP.id_produit
LEFT JOIN categories C ON C.id_categorie = CP.id_categorie
WHERE C.id_parent = 5
ORDER BY RAND()
LIMIT 10

La tu aura 10 produits aléatoires parmi les catégories directement en dessôus de ta catégorie mère..

Si tu veux aler en profondeur dans les sous-catégories, ca va etre plus chaud et j'ai meme pas le courage de t'expliquer... tapes récursivité dans google :p
 
bixi
bovitch
WRInaute discret
WRInaute discret

Inscrit le: 11 Juin 2004
Messages: 50

URL permanente de ce messagePosté le : Jeu Fév 07, 2008 23:37    Sujet du message: Afficher les produits des sous catégories

bixi a écrit:

Si tu veux aler en profondeur dans les sous-catégories...

t'as tout compris, en effet ce qui m'interesse c de decendre en profondeur. Smile

merci de ton aide.
 
bovitch Visiter le site web du posteur
DadouDuck
WRInaute passionné
WRInaute passionné

Inscrit le: 28 Mai 2007
Messages: 634

URL permanente de ce messagePosté le : Ven Fév 08, 2008 11:52    Sujet du message: Afficher les produits des sous catégories

J'ai une solution propre, mais qui necessite que tu modifie un peut la structure de ta base : il faut utiliser la "Représentation intervallaire des arborescense "comme expliqué ici au chapitre 2 : http://sql.developpez.com/arborescence/ cela permet de garder des bonnes perfs au niveau du traitement de la base de données
 
DadouDuck
bovitch
WRInaute discret
WRInaute discret

Inscrit le: 11 Juin 2004
Messages: 50

URL permanente de ce messagePosté le : Ven Fév 08, 2008 12:46    Sujet du message: Afficher les produits des sous catégories

ok merci de ton aide DadouDuck je vais voir si ça vaut le coup que je pete toute ma base pour faire ça.
 
bovitch Visiter le site web du posteur
cedric_g
WRInaute accro
WRInaute accro

Inscrit le: 18 Jan 2006
Messages: 1456
Localisation: Aube

URL permanente de ce messagePosté le : Ven Fév 08, 2008 12:56    Sujet du message: Afficher les produits des sous catégories

Bonjour


Sauf à avoir un nombre énorme de catégories et sous-catégories, en matière de performance il "suffit" de mettre en place un cache.

J'utilise ce système dans une vieille galerie photo avec catégories imbriquées (arborescence) que je suis d'ailleurs sur le point de refaire de A à Z (c'était l'un de mes premiers sites PHP Very Happy ) et ça marche très bien, sans gros impact au niveau du serveur MySQL.

Si tes catégories ne changent pas toutes les 10mn il suffit de régler le cache sur par ex. 7 jours, et les produits affichés au hasard toutes les minutes (tout dépend de ton trafic, évidemment), et de vider partiellement le cache à chaque ajout/suppression de produit ou catégorie, qui sera reconstruit automatiquement dès la première consultation.

Ainsi les accès BDD seront fortement minimisés et les perfs s'en suivront. Mais bon je parle certainement en l'air car je ne conçois pas un site web faisant des appels BDD sans cache Rolling Eyes
 
cedric_g Visiter le site web du posteur
DadouDuck
WRInaute passionné
WRInaute passionné

Inscrit le: 28 Mai 2007
Messages: 634

URL permanente de ce messagePosté le : Ven Fév 08, 2008 13:19    Sujet du message: Afficher les produits des sous catégories

Et le cache justifie de coder une base comme un porc???

Et si après il veut gérer le fait qu'il ne faille que présenter que les produits dispo, entre 2 demandes clients cela peut changer (le client juste avant a déjà pris le dernier article)

Et tu ne semble penser qu'a un usage web de la bdd, mais si plus tard, il decide de faire une appli client lourd pour attaquer sa base, les optimisation de base et de requetes sont très importantes, il faudra alors qu'il revoie toute sa base, si il la conçoit proprement dès le départ, c'est toujours ça de gagné pour plus tard.

Il ne faut jamais negliger les optimisations de bases de données, j'ai eu l'expérience dernièrement d'un client avec une base non optimisée, et dont les traitements étaient d'une lenteur, l'usage d'un cache n'aurait pas plus aider (2mn de traitement de la requete) après optimisation, c'était quasi instantanné
 
DadouDuck
cedric_g
WRInaute accro
WRInaute accro

Inscrit le: 18 Jan 2006
Messages: 1456
Localisation: Aube

URL permanente de ce messagePosté le : Ven Fév 08, 2008 16:28    Sujet du message: Afficher les produits des sous catégories

Je n'ai jamais écrit ou dit cela. Je gère des bases de données toute la journée (je suis spécialisé en analyse décisionnelle en technos Microsoft...) donc je sais ce qu'est une base optimisée, étant accessoirement architecte du système d'information de mon entreprise (centre de gestion agréé, 180 salariés, 3000 clients...)

Je m'inscrivais dans une optique "web", voilà tout Wink

Maintenant, de là à dire qu'il faut coder comme un porc, je ne crois pas. C'est juste une solution pour optimiser les performances côté client et limiter les accès inutiles au serveur Rolling Eyes
 
cedric_g Visiter le site web du posteur
DadouDuck
WRInaute passionné
WRInaute passionné

Inscrit le: 28 Mai 2007
Messages: 634

URL permanente de ce messagePosté le : Ven Fév 08, 2008 16:58    Sujet du message: Afficher les produits des sous catégories

Même dans une optique web, la gestion du cache n'est pas toujours pertinente, si dans sa requête il doit tenir compte de la gestion des stocks, il ne peut plus utiliser la technique de cache, c'est dans ce genre d'optique qu'il faut penser. C'est vrai que la sur le coup, cela va optimiser, mais plus tard?
 
DadouDuck
cedric_g
WRInaute accro
WRInaute accro

Inscrit le: 18 Jan 2006
Messages: 1456
Localisation: Aube

URL permanente de ce messagePosté le : Ven Fév 08, 2008 17:09    Sujet du message: Afficher les produits des sous catégories

Ah ben tout dépend ce qu'il doit afficher, et où.

Après c'est de la mamaille de gestionnaire (obsolescence des produits, réappros, etc.) ; d'ailleurs le cache peut ne concerner que certaines parties de pages, et en jouant sur les CSS on peut utiliser un même cache pour plusieurs types d'affichages Wink
 
cedric_g Visiter le site web du posteur
bixi
WRInaute discret
WRInaute discret

Inscrit le: 19 Sep 2007
Messages: 70

URL permanente de ce messagePosté le : Ven Fév 08, 2008 18:34    Sujet du message: Afficher les produits des sous catégories

cache ou non-cache, perf ou non-perf la quiestion etait de toute facon ailleurs :p : soitt il fait du recursif pour tenir compte de la profondeur des categories et rappatrier 10 articles parmi toutes les categories enfants..

soit il modifie sa BDD pour connaitre a tout moment TOUTES les categories ancetres de chaques catégorie (ce qui ne serait pas bete.. niveau perf: p)
 
bixi
smiles
WRInaute discret
WRInaute discret

Inscrit le: 17 Jan 2004
Messages: 99

URL permanente de ce messagePosté le : Ven Fév 08, 2008 22:03    Sujet du message: Afficher les produits des sous catégories

Fonction recursive, si pas des milliers de catégories, en quelques lignes c'est ok

Code:

function rand_cat($id)
     {                     
        $sql="SELECT id FROM categorie WHERE parent_cat='$id' order by rand()";
        $rt=mysql_query($sql);                     
        while ($data= mysql_fetch_array($rt))
          { 
            $sql1="SELECT * FROM produit where cat='$data[id]' order by rand() limit 0,1";  // 1 produit par sous cat
            $rt1=mysql_query($sql1);                         
            $dataprod= mysql_fetch_array($rt1);
            rand_cat($data['id']); // recursivite 
        }                       
     }
//depart mentionne parent_cat
rand_cat($depart);
 
smiles Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

Définitions :

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort