A voir également:
- Besoin d'aide requête sql
- Blob sql ✓ - Forum Webmastering
- Sql (+) - Forum Programmation
- Requete http - Guide
- Requete sql commence par ✓ - Forum Webmastering
- Requete sql sans doublon - Astuces et Solutions
20 réponses
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
18 févr. 2008 à 15:37
18 févr. 2008 à 15:37
comment fais-tu le lien entre tes produits et tes réservations? il te faudrait une clé étrangère dans réservation qui pointe vers produit.
à partir de là, c'est une requête d'update du genre
Update table Produit set quantite = (select produit1.quantite + reservation.quantite as quantite from produit1, reservation where produit1.codeP = produit.codeP and reservation.codeP = produit.codeP)
selon ton SGBD, cette requete peut marcher ou pas... mais l'esprit est là.
à partir de là, c'est une requête d'update du genre
Update table Produit set quantite = (select produit1.quantite + reservation.quantite as quantite from produit1, reservation where produit1.codeP = produit.codeP and reservation.codeP = produit.codeP)
selon ton SGBD, cette requete peut marcher ou pas... mais l'esprit est là.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Cependant, je ne comprends pas ta phrase lorsque tu dis : "comment fais-tu le lien entre tes produits et tes réservations? il te faudrait une clé étrangère dans réservation qui pointe vers produit. "
Je peux faire une jointure entre reservation et type et entre type et produit. Ainsi, la clé étrangère dont tu me parles n'a pas besoin d'être, si ?
Je peux faire une jointure entre reservation et type et entre type et produit. Ainsi, la clé étrangère dont tu me parles n'a pas besoin d'être, si ?
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
18 févr. 2008 à 15:51
18 févr. 2008 à 15:51
sur quoi tu te base pour faire ta jointure? il te faut un point commun entre les 2, sinon ça ne marchera pas. (c'est le principe d'une clé étrangère)
Je pensais faire la jointure suivante :
reservation.codet=type.codet and type.codet=produit.codet
Cette jointure est fausse ?
reservation.codet=type.codet and type.codet=produit.codet
Cette jointure est fausse ?
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
18 févr. 2008 à 16:29
18 févr. 2008 à 16:29
si je comprend bien, tu as une jointure 1-1 entre ta table produit et ta table type?
si c'est le cas, pourquoi faire 2 tables?
si ça n'est pas le cas, ta jointure ne marchera pas, car comment feras-tu pour identifier de manière unique tes produits sachant qu'il n'y a pas de contrainte d'unicité de ton champ codet dans ta table produit?
si c'est le cas, pourquoi faire 2 tables?
si ça n'est pas le cas, ta jointure ne marchera pas, car comment feras-tu pour identifier de manière unique tes produits sachant qu'il n'y a pas de contrainte d'unicité de ton champ codet dans ta table produit?
table produit 1,1 ------------- 1,n table type
je dois faire 2 tables car les réservation ne se font pas en fonction des produits, mais en fonction des types de produits.
Contexte :
En fait, le projet de mon stage est une application qui va permettre de gérer les stocks. Mon tuteur veut donc des pages web où l'on puisse voir qu'il y a, par exemple, des ordinateurs disponibles (peu importe l'ordinateur) et mon tuteur choisi l'ordinateur qu'il donnera à la personne qui réserve. Donc la personne qui réserve se fiche de savoir quel ordi est disponible.
Mais je dois quand même faire une mise-à-jour du stock des ordinateurs, donc du stock de la classe produit.
je dois faire 2 tables car les réservation ne se font pas en fonction des produits, mais en fonction des types de produits.
Contexte :
En fait, le projet de mon stage est une application qui va permettre de gérer les stocks. Mon tuteur veut donc des pages web où l'on puisse voir qu'il y a, par exemple, des ordinateurs disponibles (peu importe l'ordinateur) et mon tuteur choisi l'ordinateur qu'il donnera à la personne qui réserve. Donc la personne qui réserve se fiche de savoir quel ordi est disponible.
Mais je dois quand même faire une mise-à-jour du stock des ordinateurs, donc du stock de la classe produit.
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
18 févr. 2008 à 16:48
18 févr. 2008 à 16:48
le problème set qu'à priori une réservation correspond à un produit et non à un type, et que si tu te sers de ton type pour faire la jointure, tu vas ajouter une indétermination dans ta relation
donc je répète : il te manque une clé étrangère ou quelque chose pour faire le lien entre les produits et les réservations
donc je répète : il te manque une clé étrangère ou quelque chose pour faire le lien entre les produits et les réservations
Donc, d'après ce que je prends, je devrais modifier ma table réservation pour y ajouter une clé étrangère "codeprod" qui fait référence au code de la table produit ?
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
18 févr. 2008 à 17:05
18 févr. 2008 à 17:05
sachant qu'on réserve un type, le produit de la réservation ne sera renseigné qu'à chaque fois que la réservation est attribuée. cependant, si tu fais ton calcul avec le codet, sachant que plusieurs produits peuvent avoir le même codet, si tu fais la somme du nombre de produits et de toutes les réservations qui ont ce type de produit, tu vas avori des résultats aberrants
par ex : 3 ordinateurs de réservés : 1 HP et 2 DELL, tu veux faire le compte des DELL sachant qu'il y en a 45 en magasin, tu fais la somme des DELL en magasin plus des réservations dont le TYPE correspond au type de tobn produit, c'est à dire ordinateur et non pas DELL, et tu te retrouves avec 48 DELL au lieu de 47
par ex : 3 ordinateurs de réservés : 1 HP et 2 DELL, tu veux faire le compte des DELL sachant qu'il y en a 45 en magasin, tu fais la somme des DELL en magasin plus des réservations dont le TYPE correspond au type de tobn produit, c'est à dire ordinateur et non pas DELL, et tu te retrouves avec 48 DELL au lieu de 47
C'est vrai que c'est aberrant, mais ce sont les consignes que j'ai reçu : La réservation se fait sur le type de produit. Mon tuteur gère ensuite le matériel qu'il donne aux personnes réservant le matériel.
Penses-tu que je puisse faire 2 requêtes : la première mémorise le nombre d'ordinateurs (ou autre produit) réservés et j'inclus le résultat de cette requête dans la 2e pour pouvoir l'ajouter au stock du produit ?
J'ai modifié ma bdd en rajoutant une clé étrangère dans la table réservation et j'ai testé la requête que tu m'as fourni plus haut et il me met un message d'erreur comme quoi la table 'produit1' n'existe pas dans ma base de données...
Penses-tu que je puisse faire 2 requêtes : la première mémorise le nombre d'ordinateurs (ou autre produit) réservés et j'inclus le résultat de cette requête dans la 2e pour pouvoir l'ajouter au stock du produit ?
J'ai modifié ma bdd en rajoutant une clé étrangère dans la table réservation et j'ai testé la requête que tu m'as fourni plus haut et il me met un message d'erreur comme quoi la table 'produit1' n'existe pas dans ma base de données...
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
19 févr. 2008 à 10:25
19 févr. 2008 à 10:25
excuse moi, un petit oubli.
il faut mettre
from produit produit1, pour attribuer un nom de remplacement à ta table produit, pour la différencier de ta table produit que tu appelles dans la 1ere partie de ta requete
il faut mettre
from produit produit1, pour attribuer un nom de remplacement à ta table produit, pour la différencier de ta table produit que tu appelles dans la 1ere partie de ta requete
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
19 févr. 2008 à 11:02
19 févr. 2008 à 11:02
arrête les serveurs (apache compris) et relance tout
J'ai pas de serveur apache lancé, j'ai reboot la machine, réinstallé et la configuration de mysql server ne passe pas, il plante au niveau du redémarrage de l'application... Je comprends pas, j'ai pas touché au pc depuis hier soir et ca marchait niquel hier...
SebManfred
Messages postés
484
Date d'inscription
mardi 28 août 2007
Statut
Membre
Dernière intervention
20 mai 2011
128
19 févr. 2008 à 11:22
19 févr. 2008 à 11:22
mysql server? c'est soit mysql, soit sql server... et les 2 sont complètement différents.
c'est quoi ton SGBD?
c'est quoi ton SGBD?