RequetteSQL

Fermé
Mabroukkk - 7 juil. 2009 à 21:01
 Mabroukkkkkkk - 10 juil. 2009 à 01:38
Bonjour,
Merci de m'aider
je developpe avec EasyPhp;
j'ai une table dans MySql filieres(etablissement, ville, Demande, avisexperts) telque:
etablissement= Nom d'une etablissement universitaire;
ville= la ville de l'etablissement;
avisexperts= l'avis des experts pour l'etablissement peut prendre 4 valeurs (F, FAR, FSC ou DEF), donc moi je cherche une requette Sql me permet de remplir la table suivante:
la ligne de la table:

etablissement | ville | nbre de demande | nbre F | nbre FAR | nbre FSC | nbre DEF|
------------------------------------------------------------------------------------------------------------------------------
| | | | | | |
-------------------------------------------------------------------------------------------------------------------------------
merci bien

5 réponses

Samaël666 Messages postés 73 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 6 juin 2010 8
7 juil. 2009 à 21:09
La requête :

mysql_query("INSERT INTO filieres VALUES('".$etablissement."','".$ville."','".$nombrededemande."','".$nbreF."','".$nbreFAR."','".$nbreFSC."','"$nbreDEF"')");


Devrait insérer à merveille dans la table "filieres" les variables dans l'ordre voulu !

Il suffit maintenant de tester l'existence et la justesse des variables avec le résultat attendu et tout devrait passer.

Samaël666.
0
Non monsieur la table est emplis dans la base de données;
moi je veux afficher (select .......) les données a partir de la table filieres en respectant la structure d'affichage ci-dessus.
merci
0
Samaël666 Messages postés 73 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 6 juin 2010 8
8 juil. 2009 à 12:03
Ah, en tant qu'affichage !

Désolé j'avais mal compris la question.

Alors dans ce cas, il faut extraire la totalité des données dans la table filière, ce qui nous donnera un tableau et pour chaque ligne emplir le tableau d'affichage.

Bien sûr il y a une partie html à gérer,
Pour la partie sql, ceci devrait suffir :

<?php
$retour = mysql_query('SELECT * FROM filieres WHERE 1');
while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les établissements
{
-- affichage --
}
?>
</table>


Bien entendu tout cela se passe après un mysql_connect et mysql_select_db.

Pour la boucle d'affichage, il s'agirait d'un table, donc dans un permier temps définir les légendes (établissement, ville, etc) par exemple ainsi :
<table>
<tr>
<th>Etablissement</th>
<th>Ville</th>
<th>Nombre de demandes</th>
<th>Nombre F</th>
<th>Nombre FAR</th>
<th>Nombre FSC</th>
<th>Nombre DEF</th>
</tr>


Ceci inséré avant la boucle.

Pour le contenu de la boucle, on complète à partir du tableau obtenu par la requête :
[Remplace -- affichage -- dans l'exemple]
<tr>
<th><?php echo $donnees['etablissement']; ?></th>
<th><?php echo $donnees['ville']; ?></th>
<th><?php echo $donnees['nombrededemande']; ?></th>
<th><?php echo $donnees['nombref']; ?></th>
<th><?php echo $donnees['nombrefar']; ?></th>
<th><?php echo $donnees['nombrefsc']; ?></th>
<th><?php echo $donnees['nombredef']; ?></th>
</tr>


Pour les avis experts, comment sont-ils enregistrés dans la base de données ? C'est un tableau ?

Ces codes sont des exemples, il faut justement les adapater au problème.

Cordialement, Samaël666.
0
fast518 Messages postés 18 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 10 juillet 2009
8 juil. 2009 à 12:10
Bonjour,
Déjà moi je te propose d'optimiser ta base en créant une autre table :
Table Fillieres : (idfilliere, etablissement, ville, demande)
Table Avis :(idAvis, idFilliere, Avisexpert)
et comme ca tu pourras bien utiliser ce que Smael t a donné.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Samaël666 Messages postés 73 Date d'inscription mardi 29 juillet 2008 Statut Membre Dernière intervention 6 juin 2010 8
8 juil. 2009 à 12:19
Sinon on peut traiter le tableau avisexperts (s'il en est un) en faisant des calculs sur les valeurs qu'il prend.
Une boucle en while qui incrémente une valeur pour chaque "F" dans le tableau et ainsi de suite.

Euh, j'ajoute qu'avec un foreach on devrait y arriver :
$f = 0;
$far = 0;
$fsc = 0;
$def = 0;
foreach ($donnees['avisexeperts'] as $avis)
{
if ($avis == "F")
{$f++}
elseif ($avis == "FAR")
{$far++}
elseif ($avis == "FSC")
{$fsc++}
else
{$def++}
}


Voilà en gros un code qui analyserait le contenu du tableau et nous donnerait trois valeurs affichables !

Evidemment il serait bien plus aisé de faire une requête sur ta table avis,
quelque chose comme ça :
En plus on pourrait gérer les différents avis, ajouter aussi le nom/identifiant de l'expert pour pour administrer les avis suivant celui qui les a écrit !

$compte = mysql_query('SELECT COUNT(*) FROM avis WHERE idFilliere='.$donnees['idfilliere'].' AND Avisexpert='"F");
$compte = mysql_fetch_row($compte);
$compte = $compte[0];


(Juste une hésitation sur le Avisexpert="F")

On obtiendrait un nombre pour les Avisexpert en F ici et ainsi de suite pour chaque avis.

Samaël666.
0
Mabroukkkkkkk
10 juil. 2009 à 01:38
pour vous expliquer bien mon probleme monsieur;

moi j'ai une table de données dans la base de données MySql le suivant:

filieres (demande, université, etablissement, ville, avis)

Important: avis peut prendre 4 valeurs (F, FAR, FSC, DEF), se sont des valeurs de la colonne avis.

ce que je veux moi meme est de créer une requette pour selectionner le nombre total de demandes(F, FAR, FSC,DEF) ainsi le nombre de F, nombre de FAR, nombre de FSC, nombre de DEF POUR CHAQUE COUPLE (etablissement, ville).

exemple: nombre total de demandes(10)=2(F)+3(FAR)+4(FSC)+1(DEF) pour l'établissement FST qui se trouve dans la ville Rabat (FST, Rabat).

Merci.
0