Php ; mysql
Fermé
houdaelfa12
Messages postés
5
Date d'inscription
mardi 11 juillet 2017
Statut
Membre
Dernière intervention
14 juillet 2017
-
11 juil. 2017 à 01:51
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 14 juil. 2017 à 14:03
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 14 juil. 2017 à 14:03
A voir également:
- Php ; mysql
- Easy php - Télécharger - Divers Web & Internet
- Mysql download - Télécharger - Bases de données
- \R php ✓ - Forum PHP
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Le paquet « mysql-server » n'a pas de version susceptible d'être installée ✓ - Forum Debian
3 réponses
theolius
Messages postés
8
Date d'inscription
mardi 26 janvier 2010
Statut
Membre
Dernière intervention
12 juillet 2017
11 juil. 2017 à 16:25
11 juil. 2017 à 16:25
Bonjour,
Si j’ai bien compris, tu aimerais créer une requête capable de trouver le nombre de personnes qui a emprunté un « item » selon son sexe et sa filière.
Pour ce faire, une des possibilités est d’utiliser la fonction COUNT(*).
Sauf que, selon tes tables, il manque visiblement la liaison entre l’item en prêt et l’emprunteur.
Comment sais-tu que, par exemple, M. Dupont a emprunté le livre «fahrenheit 451 » ?
Cordialement
Si j’ai bien compris, tu aimerais créer une requête capable de trouver le nombre de personnes qui a emprunté un « item » selon son sexe et sa filière.
Pour ce faire, une des possibilités est d’utiliser la fonction COUNT(*).
Sauf que, selon tes tables, il manque visiblement la liaison entre l’item en prêt et l’emprunteur.
Comment sais-tu que, par exemple, M. Dupont a emprunté le livre «fahrenheit 451 » ?
Cordialement
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
13 juil. 2017 à 22:40
13 juil. 2017 à 22:40
Bonjour,
Pour commencer... il faudrait savoir avec quel SGBD tu bosses ... (mysql, oracle, access... autre ???)
Ensuite.. dans la majorité des SGBD ... tu pourras réaliser tes deux requêtes simplement à l'aide des instructions SELECT COUNT et WHERE et éventuellement du GROUP BY !
Un truc du genre :
NB : N'utilises pas de caractères accentués dans le nom de tes tables ni dans le nom de tes champs. Ta table "prêts" doit être renommée en "pret"
Pour commencer... il faudrait savoir avec quel SGBD tu bosses ... (mysql, oracle, access... autre ???)
Ensuite.. dans la majorité des SGBD ... tu pourras réaliser tes deux requêtes simplement à l'aide des instructions SELECT COUNT et WHERE et éventuellement du GROUP BY !
Un truc du genre :
SELECT E.filiere , E.sexe, COUNT(E.N_inscription) as NB FROM pret P LEFT JOIN emprunteur E ON E.N_inscription = P.N_inscription LEFT JOIN ouvrages O ON O.N_inventaire = P.N_inventaire WHERE P.datepret >= '2017-01-01' AND P.dateretour <= '2017-07-01' GROUP BY E.filiere , E.sexe
NB : N'utilises pas de caractères accentués dans le nom de tes tables ni dans le nom de tes champs. Ta table "prêts" doit être renommée en "pret"
houdaelfa12
Messages postés
5
Date d'inscription
mardi 11 juillet 2017
Statut
Membre
Dernière intervention
14 juillet 2017
13 juil. 2017 à 23:12
13 juil. 2017 à 23:12
merci , oui je bosses dans le SGBD Mysql , et je veux savoir c'est quoi E.filiere ? c'est quoi le E et une autre chose , pour l'exemple que tu mas donne tas précisé la date mais mois je veux faire une date de pret et retour quelconque ?
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
>
houdaelfa12
Messages postés
5
Date d'inscription
mardi 11 juillet 2017
Statut
Membre
Dernière intervention
14 juillet 2017
14 juil. 2017 à 01:53
14 juil. 2017 à 01:53
E c'est ce qu'on appelle un alias.
Et pour la date... c'est un exemple. A toi de l'adapter à tes besoins
Et pour la date... c'est un exemple. A toi de l'adapter à tes besoins
houdaelfa12
Messages postés
5
Date d'inscription
mardi 11 juillet 2017
Statut
Membre
Dernière intervention
14 juillet 2017
14 juil. 2017 à 02:50
14 juil. 2017 à 02:50
ok merci bcq , une dernière question , en fait je veux supprimer UN PRET du table pret et en même temps je veux supprimer les champs qui sont relies avec cette table jai essaye ce code mais ca ne marche pas
$sql="DELETE e,p,o
FROM emprunteur e
INNER JOIN pret p
ON e.N_inscription=p.N_inscription INNER JOIN ouvrages o.N_inventaire=p.N_inventaire where (N_pret=$N_pret)";
mysql_query($sql);
$sql="DELETE e,p,o
FROM emprunteur e
INNER JOIN pret p
ON e.N_inscription=p.N_inscription INNER JOIN ouvrages o.N_inventaire=p.N_inventaire where (N_pret=$N_pret)";
mysql_query($sql);
houdaelfa12
Messages postés
5
Date d'inscription
mardi 11 juillet 2017
Statut
Membre
Dernière intervention
14 juillet 2017
Modifié le 14 juil. 2017 à 13:58
Modifié le 14 juil. 2017 à 13:58
$sql1="DELETE * FROM emprunteur WHERE N_inscription IN (SELECT N_inscription FROM pret WHERE (N_pret=$N_pret)" ; $sql2="DELETE N_inventaire FROM ouvrages where N_inventaire IN (SELECT N_inventaire FROM pret WHERE (N_pret=$N_pret) "; $sql3="DELETE datepret,dateretour FROM pret where (N_pret=$N_pret)"; mysql_query($sql1); mysql_query($sql2); mysql_query($sql3); if($sql1||$sql2||$sql3) { echo("La suppression à été correctement effectuée<br><br>") ; echo("<a href=\"afficher1.php\">afficher la liste </a>"); }
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICIMerci d'y penser dans tes prochains messages.Jordane45 |
jai essaye ca mais ca ne marche plus :/
jordane45
Messages postés
38138
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 avril 2024
4 649
14 juil. 2017 à 14:03
14 juil. 2017 à 14:03
1 - NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
3 - Tu dis que ça ne "marche pas" .. c'est à dire ??
As tu au moins essayé tes requêtes DIRECTEMENT dans ta bdd (via phpmyadmin par exemple) ???
Car ton souci vient de ta syntaxe du DELETE ....
En fait, tu peux faire un delete sur plusieurs tables en même temps... c'est juste qu'il faut correctement l'écrire !
Comme dans l'exemple donné dans la doc (https://dev.mysql.com/doc/refman/5.7/en/delete.html
Essaye :
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
2 - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli
Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
3 - Tu dis que ça ne "marche pas" .. c'est à dire ??
As tu au moins essayé tes requêtes DIRECTEMENT dans ta bdd (via phpmyadmin par exemple) ???
Car ton souci vient de ta syntaxe du DELETE ....
En fait, tu peux faire un delete sur plusieurs tables en même temps... c'est juste qu'il faut correctement l'écrire !
Comme dans l'exemple donné dans la doc (https://dev.mysql.com/doc/refman/5.7/en/delete.html
DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;
Essaye :
DELETE emprunteur , pret ,ouvrages FROM emprunteur INNER JOIN pret ON emprunteur.N_inscription=pret.N_inscription INNER JOIN ouvrages ON ouvrages.N_inventaire=pret.N_inventaire WHERE (pret.N_pret='$N_pret')
13 juil. 2017 à 22:10
emprunteur(N_inscription,nom, prenom,sexe,filiere)
ouvrages(N_inventaire,cote,auteur)
prêt(N_pret,datepret,dateretour,N_inscription,N_inventaire)
un emprunteur(N_inscription) realise un prêt pendant la date de pret et la date de retour
moi je veux calculer le nombres des emprunteurs selon la filière et selon leur sexe pendant la date de pret et la date de retour , je veux 2 requetes sql
une requête pour calculer les emprunteurs selon leur filière
et l'autre requête pour calculer le nombre d'emprunteurs selon leur sexe
jespre tu as compris