begin process at 2010 02 10 17:27:04
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

pb requete mysql


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

pb requete mysql

samedi 4 septembre 2004 à 15:26:25 | pb requete mysql

Tomcube

Salut à tous,

J'ai un problème pour créer une requête mysql.

J'ai une table "vente" avec des champs "id_vente, id_vendeur, id_objet, prix, qtt". Là dedans, je mets toutes les propositions de vente des clients.

Le but est de faire une page d'achat pour les acheteurs avec l'affichage des trois plus petits prix et de la quantité disponible pour chaque prix. Et ce, pour une trentaine d'objets sur la même page.

Le problème, c'est que j'ai pas envie de faire 200 requêtes pour réaliser cette page. Pouvez-vous m'aider à me monter une requete condensée pour avoir tout ça en un coup. ?

-------------------------------
Life is a game, Enjoy ! ^^
samedi 4 septembre 2004 à 17:17:55 | Re : pb requete mysql

gibozsec

A mon avis tu vas devoir faire 2 requetes.

Il faut une variable $page qui est le muméro de la page (page1=0, page2=1,...) et tu fait $page=$page*30; pour savoir a partir de quel article tu doit afficher. Ensuite tu sélectionne la liste des articles à afficher avec :



SELECT DISTINCT(id_objet) as id FROM vente LIMIT $page,30;



Ensuite tu fait une boucle, dans la boucle tu lit le nom de l'objet (que tu met par exemple dans $objet) et tu fait



SELECT * FROM vente WHERE id_objet=$objet ORDER BY prix LIMIT 0,3



Cette requète renverra les 3 plus bas prix pour l'objet en cours.

Grrrrrrrrrrr
samedi 4 septembre 2004 à 17:43:08 | Re : pb requete mysql

Tomcube

Merci de ta réponse

Je suis d'accord, mais si je fais une boucle pour chacun des 30 produits, ça revient au même, je fais donc 31 requêtes, c'est ça le problème. Je me demandais s'il était possible de réaliser ça avec un minimum de requête. Parce que je vois mal le serveur SQL tenir avec 3000 requêtes la minute ...

-------------------------------
Life is a game, Enjoy ! ^^
samedi 4 septembre 2004 à 18:35:55 | Re : pb requete mysql

windu

Membre Club
Si on part du principe que les memes produits ont le meme id_objet si ce n'est pas le cas corrige ce détail...) et si tu ne veux qu'une seule requete SQL, tu peux faire:

SELECT * FROM vente ORDER BY id_objet,prix

tu auras tous tes produits à vendre classés par id_objet puis par prix...

Que la Force soit avec toi, Jeune Padawan!!!
samedi 4 septembre 2004 à 19:05:23 | Re : pb requete mysql

gibozsec

Ok, j'avais pas compris je croyait que tu voulais limiter le nombre de requètes à écrire pas à exécuter.

Une autre solution serait de faire une requète du genre

SELECT MIN(prix) as prixMini, id_vente, qtt FROM vente GROUP BY id_ojet LIMIT $page,30;

Le problème c'est que tu n'y afficherais que l'objet le moins chère et pas les 3 moins chère. La fonction MIN permet peut etre de renvoyer 3 résultats essaye de te renseigner, si c'est la cas tu le fera en 1 requete.



Grrrrrrrrrrr
samedi 4 septembre 2004 à 21:04:01 | Re : pb requete mysql

Tomcube

Merci de vos réponses !

> Windu, ta requête a le mérite d'être courte et simple, mais si il y a 10000 ordres de vente par les clients, pour trier les ordres entre ceux qui correspondent aux trois plus bas prix et les autres, ça doit faire ramer le serveur à mort à chaque chargement de la page.

> gilbozec, la dernière requête que tu as mis est une solution pour avoir le plus bas des prix. c'est la solution par laquelle j'avais commencé à réfléchir. le problème c'est que ça ne donne pas le deuxième plus bas, ni le 3e ...

Je recherche bien le système qui permet de réduire le temps d'exécution et qui sollicite le moins possible le serveur. si c'est long à écrire ça me dérange pas. Si ça me permet de réduire le nombre de requête de 30 à 5 ça me va déjà !

peux-on faire quelque chose au niveau des sous-requêtes qu'on pourrait mettre ? sinon, je serai obliger de me restreindre à n'afficher que le plus bas des prix, et ensuite de faire cliquer l'acheteur sur un des produits pour afficher les différents prix de ce produit ...

-------------------------------
Life is a game, Enjoy ! ^^
dimanche 5 septembre 2004 à 14:40:52 | Re : pb requete mysql

Tomcube

J'ai la requête permettant d'obtenir les 2 premiers prix. Il faut en fait utiliser 2 fois la même table et d'utiliser HAVING COUNT(DISTINCT prix) <= 2. Par contre, je ne sais pas comment faire pour avoir le nombre de quantité dispo pour ces deux premiers prix.

-------------------------------
Life is a game, Enjoy ! ^^


Cette discussion est classée dans : mysql, requete, id, prix, vente


Répondre à ce message

Sujets en rapport avec ce message

Prob requete mysql [ par zzzzzz ] salut phpmyadmin me genere ca j'aimerai faire un champ qui s'auto incremente mais ca marche pas la requete de phpmyadmin:Erreurrequête SQL : ALTER T probleme requete mysql [ par ad102 ] bonjour, J'ai un grand besoin d'aide car je ne comprend pa ce qui se passe :j'ai un message d'erreur : Warning: mysql_db_query(): supplied argument Probleme de requete pour affichage membre [ par magicjim ] Bonjour @ tous, voila mon probleme je fait une requete par le biais d'un formulaire qui envoit l'id du membre, mais a l'affichage cela ne me montre qu centrer une requete mysql [ par martiall ] Bonjour,bon le titre est un peu tiré par les cheveux mais bon...Pour simplifier, j'ai une table user (ID_USER, PSEUDO)depuis une page, je séléctionne problème de requete SQL avec ID aléatoire [ par djinko ] Bonsoir,Ayant chercher pendant des heures et des heures, je me tourne vers vous pour avoir une explication car franchement, je nage...J'ai crée un esp pb requete mysql [ par joduak ] Salut à vous! J'ai un ptit pb de requête mysql... J'insère un certain nbre d'informations à un moment donné, par exemple la requete suivante: $requet Problème requete mysql [ par tony1239456 ] Bonjour, j'ai un gros problème avec ma requete mysql. J'ai crée une table avec 6 champs :id : int(5) - auto_incrementtitre : varchar(30)des : varchar( Requete PHP [ par AlexPoulard ] Bijour à tous ! J'ai un petit probleme de lecture d'une base de données : Dans ma base j'ai des enregistrements (quelques entrées inutiles sont cachée Requete mysql [ par antho2005 ] Salut,j'ai un blem je fais une requete mysql je fais mysql_query mais il ne supprime rien, il doit y avoir une erreur.Voici mon bout de code :$requete Requete MySQL trop dure pour moi [ par rouliendelavegas ] Bonjour, J'ai un petit problème pour savoir comment faire ce que je veux grace à MySQL: Tout est dans l'image : Alors j'ai essayé ça


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,562 sec (4)

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