Php. Bonjour, j'ai un ptit probleme, j'ai un programme en php,

Résolu/Fermé
Utilisateur anonyme - 16 nov. 2016 à 17:38
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 28 nov. 2016 à 17:17
Bonjour,

j'ai un ptit probleme, j'ai un programme en php, j'ai une base de donnees avec des tables telles que, tbeleve, tbnote...
je veux calculer la moyenne pour chaque eleve via son bulletin , je n'arrive pas. quelqu'un peur m'aider svp? merci
A voir également:

5 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
17 nov. 2016 à 08:55
Bonjour,

Et tu as commencé à coder quelque-chose ?
La Combobox peut être ?
Le tableau ?

Tu peux déjà nous montrer ce que tu as essayé ?

Pour ce qui est de la requête. .. tu peux utiliser un WHERE pour filtrer sur un élève.
0
Utilisateur anonyme
17 nov. 2016 à 19:44
salut! oui, voici le combo:
<tr align="center">
<td><span class="styl1">matricule</span></td>
<td width="149"><select name="matricule" id="matricule">
<?php
require("connection.php");
$getallcode=mysql_query("select * from tb_eleve");
while($viewallcode=mysql_fetch_array($getallcode)){
?>
<option id="<?php echo $viewallcode['Matricule']; ?>"><?php echo $viewallcode['Matricule'] ?></option>
<?php } ?>
</select></td>
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
17 nov. 2016 à 23:03
quelles sont les colonnes de tes tables tbeleve et tbnote ?
ton code est opérationnel? tout fonctionne bien, excepté le calcul de la moyenne?
merci de nous dire précisément ce que tu attends du forum.
0
Utilisateur anonyme
18 nov. 2016 à 03:42
je pense que je peux calculer la moyenne uniquement avec la table note, les colonnes sont: matricule(combobox), classe, matiere, note obtenue, coefficient. mon veritable probleme c'est que je veux a chaque matricule choisi dans le combo s'affichent automatiquement les autres champs apprpries. par exemple, si il ya un eleve avec un matricule 22, lorsque je choisi le matricule s'affiche automatiquement les colonnes classe, matiere et les differentes notes obtenues par matiere avec leur coefficient. j'espere la precision est bonne. merci deja!
0
Utilisateur anonyme
18 nov. 2016 à 04:02
en passant, comment comprennez vous ceci? toujours dans mon programme, precisement la table tbeleve, avant le matricule etait auto_increment et je n'avais aucun probleme pour modifier les donnees de la table, je trouvais ca un peu moins professionnel et j'ai decide de changer le champ matricule en varchar, je prend une partie du nom de l'eleve, une partie du prenom, une partie de la date de naissance avec substring pour realiser le matricule, ca a marche pour l'insertion mais ne me permet pas de faire des mise a jour, il me donne un waning du genre: mysql_fetch_object(): supplied argument is not a valid mysql result resource, la ligne precisee est: if($result = mysql_fetch_object ($requete)).

NB: $cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "ecole" ) ;

//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["ideleve"] ;

//requête SQL:

$sql = "SELECT *
FROM tb_eleve
WHERE Code_Eleve= ".$id ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

que pouvez vous me suggerer? merci deja
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > Utilisateur anonyme
18 nov. 2016 à 13:53
Bonjour,

Il manque simplement les quotes autour de la variable $id
WHERE Code_Eleve= '".$id."'";


Mais bon.. attention.... mettre des "id" en varchar ralentira un peu plus tes requêtes que l'utilisation de nombres.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
18 nov. 2016 à 12:59
Dans une requête, une comparaison avec un nombre ne s'écrit pas tout-à-fait comme une comparaison avec un mot. Donc tu dois adapter ta requête après avoir décidé de changer le matricule de nombre en varchar.
Suggestion : affiche la valeur de $sql, et exécute cette requête sans passer par un programme..
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024
27 nov. 2016 à 17:46
Dans une requête, une comparaison avec un nombre ne s'écrit pas tout-à-fait comme une comparaison avec un mot

Ah ? ..mouais.. disons plutôt que ... pour un champ de type numérique.. les quotes ne sont pas obligatoires alors que pour des champs text elles le sont.
Mais .. si il prend (et toi aussi....) l'habitude de mettre des quotes SYSTEMATIQUEMENT cela évitera de nombreuses déconvenues... (au cas où la variable serait vide ou null par exemple)...
0
Utilisateur anonyme
27 nov. 2016 à 04:53
desole mes amis j'etais absent pour des raisons qui sont independantes de ma volonte, je suis de retour. le proble persiste encore, entre temps je vais continuer mes recherches afin de trouver quelque chose. merci a vous tous qui avez pris la peine de venir a mon secours. merci infiniment.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
27 nov. 2016 à 11:17
Le problème persiste à quel niveau ?
As tu tenu compte de nos remarques ?
Quel est ton code maintenant ?
0
tu m'as suggere de mettre des quotes autour de la variable $id, je l'ai fait et ca ne marche pas. comme je vous ai dit deja, ca ne pose pas de probleme lorsque le champ id est de type int auto-increment, seulement quand j'ai essaye de passer de int a varchar le probleme se pose. en plus j'aimerais incrementer un chiffre a la fin de l'id a chaque nouvelle insertion afin d'eviter avec deux eleves qui ont le meme nom et prenom d'avoir le meme id. par exemple, pour un premier eleve qui s'appelle julien pierre, son id sera JULPI, maintenant avec l'incrementation d'un nombre, j'aimerais avoir JULPI01, pour un autre eleve xxxxx02, xxxxx03.... ainsi de suite. j'ai code la premiere partie, j'arrive pas a realiser l'incrementation
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > appo26
28 nov. 2016 à 15:40
tu m'as suggere de mettre des quotes autour de la variable $id, je l'ai fait et ca ne marche pas

- Qu'est ce qui ne marche pas ?
- Pourrais tu être plus précis ??
- Quel est le code ( EN ENTIER) que tu utilises ?
- Quelle est la structure de ta table ?


en plus j'aimerais incrementer un chiffre a la fin de l'id a chaque nouvelle insert

Comme tu le dis... c'est en "plus".
Commence déjà par résoudre ton problème avant de vouloir greffer d'autres choses dessus.
Et puis.... c'est une autre question... qui devra faire l'objet d'une nouvelle disucssion sur le forum. ( tant que possible... on ne pose qu' UNE seule question par discussion histoire de plus facilement s'y retrouver ).

Sans oublier d'y mettre le code utilisé ... vu que tu indiques:
j'ai code la premiere partie, j'arrive pas a realiser l'incrementation


Merci.
0

<?php
  //connection au serveur:
  $cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
  $db = mysql_select_db( "ecole" ) ;

//récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
 $id  = $_GET["ideleve"] ;

//requête SQL:

$sql = "SELECT *
            FROM tb_eleve
     WHERE Code_Eleve= ".$id ;
  //exécution de la requête:
  $requete = mysql_query( $sql, $cnx ) ;

//affichage des données:
  if($result = mysql_fetch_object ($requete))
  {
  ?>
<div id="apDiv13">
  <form name="insertion" action="modifier_eleve_premiere_annee3.php" method="POST">
  <input type="hidden" name="id" value="<?php echo($id) ;?>">
   <table width="587" border="3" bgcolor="#ABABAB" height="300">
    <tr align="center">
     <td><span class="style1">Nom</span></td>
      <td width="149"><label>
      <input type="text" name="nom" value="<?php echo($result->Nom) ;?>">
       </label></td>
        <td width="119"><span class="style1">Sexe</span></td>
          <td width="145"><label>
             <input type="text" name="sexe" value="<?php echo($result->Sexe) ;?>">
    </label></td>
    </tr> 
    <tr align="center">
     <td><span class="style1">Prenom</span></td>
      <td width="149"><label>
      <input type="text" name="prenom" value="<?php echo($result->Prenom) ;?>">
       </label></td>
        <td width="119"><span class="style1">Date_Naissance</span></td>
          <td width="145"><label>
             <input type="text" name="datenaissance" value="<?php echo($result->Date_Naissance) ;?>">
    </label></td>
    </tr>
    <tr align="center">
     <td><span class="style1">Classe</span></td>
      <td width="149"><label>
      <input type="text" name="classe" value="<?php echo($result->Classe) ;?>">
       </label></td>
        <td width="119"><span class="style1">Annee_Academique</span></td>
          <td width="145"><label>
             <input type="text" name="anneeacademique" value="<?php echo($result->Annee_Academique) ;?>">
    </label></td> 
    </tr>
        <tr align="center">
     <td><span class="style1">Pers_Resp</span></td>
      <td width="149"><label>
      <input type="text" name="persresp" value="<?php echo($result->Pers_Resp) ;?>">
       </label></td>
        <td width="119"><span class="style1">Lien_Parental</span></td>
          <td width="145"><label>
             <input type="text" name="lienparental" value="<?php echo($result->Lien_Parental) ;?>">
    </label></td>
    </tr>
     <tr align="center">
     <td><span class="style1">Adresse</span></td>
      <td width="149"><label>
      <input type="text" name="adresse" value="<?php echo($result->Adresse) ;?>">
       </label></td>
        <td width="119"><span class="style1">Telephone</span></td>
          <td width="145"><label>
             <input type="text" name="telephone" value="<?php echo($result->Telephone) ;?>">
    </label></td>
    </tr>

<tr align="center">
      <td colspan="4"><label>
      <input type="submit" value="modifier">
       </label></td>
    </tr>
  </table>
</form></div>
  <?php
  }//fin if 
  ?>

EDIT : Ajout des balises de code ...encore....

NB. ce bout de code est celui qui permet d'afficher la table avec les donnees a modifier puis de valider
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
28 nov. 2016 à 16:08
Heu...
où as tu mis les quotes ???
$sql = "SELECT *
            FROM tb_eleve
     WHERE Code_Eleve= ".$id ;

... je ne les vois pas dans ce bout de code........
0
desole jordane45, vous avez raison. j'avais mis les quotes mais pas a la bonne position. maintenant ca marche. merci infiniment.

mon probleme maintenant c'est la question d'incrementation
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649 > appo26
28 nov. 2016 à 17:17
Donc :
Etape 1 : Mettre cette discussion en Resolu (je m'en occupe pour toi)
Etape 2 : Ouvrir une nouvelle discussion sur le forum pour discuter de ce "nouveau" problème.
0

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

Posez votre question
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
16 nov. 2016 à 17:59
Hello,

vu que tu postes dans mysql je vais en conclure que tu cherches la requête SQL qui permettrait d'obtenir les résultats. Voilà une piste :

https://www.tutorialspoint.com/mysql/mysql-avg-function.htm

A utiliser avec un client mysql permettant de se connecter à la base et de lancer des requêtes :

- en mode graphique avec par exemple phpmyadmin si il est installé
- en mode console avec le client par défaut

Il existe pléthores d'outils (graphiques ou non) permettant d’interagir avec une base de donnée, les choix peuvent être déterminés en fonction du contexte (base locale, personnelle, professionnelle), de l'environnement (Windows/Linux), de la connectivité à la base (locale,réseau,...) ...

Pour mettre ça dans du PHP et sortir une page, c'est une autre histoire, mais la première étape c'est déjà d'avoir la requête SQL qui fait le travail, le reste ce n'est que de la mise en forme.

En espérant que cela répondra à ta question.
-1
Utilisateur anonyme
17 nov. 2016 à 04:31
merci ryko, mais le probleme est plus complexe que ca, ce que veux realiser c que, je dois calculer la moyenne pour chaque eleve separement, pour cela, je voudrais selectionner tous les matricules des eleves dans un combobox, et a chaque matricule choisi doivent afficher les donnees correspondantes dans un tableau pour pouvoir calculer la moyenne pour l'eleve en question. voila! j'attend avec impatience vos reactions. merci
0