Signaler

Php. Bonjour, j'ai un ptit probleme, j'ai un programme en php, [Résolu/Fermé]

Posez votre question appo26 6Messages postés mercredi 16 novembre 2016Date d'inscription 27 novembre 2016 Dernière intervention - Dernière réponse le 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
Afficher la suite 
Utile
+0
moins plus
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.
appo26 6Messages postés mercredi 16 novembre 2016Date d'inscription 27 novembre 2016 Dernière intervention - 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>
Utile
+0
moins plus
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.
appo26 6Messages postés mercredi 16 novembre 2016Date d'inscription 27 novembre 2016 Dernière intervention - 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!
appo26 6Messages postés mercredi 16 novembre 2016Date d'inscription 27 novembre 2016 Dernière intervention - 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
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 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.
yg_be 844Messages postés lundi 9 juin 2008Date d'inscription 9 décembre 2016 Dernière intervention - 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..
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 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)...
Utile
+0
moins plus
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.
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 27 nov. 2016 à 11:17
Le problème persiste à quel niveau ?
As tu tenu compte de nos remarques ?
Quel est ton code maintenant ?
appo26- 28 nov. 2016 à 15:29
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
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 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.
Utile
+0
moins plus

<?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
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 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........
appo26- 28 nov. 2016 à 17:01
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
jordane45 15439Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 9 décembre 2016 Dernière intervention - 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.
Utile
-1
moins plus
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.
appo26 6Messages postés mercredi 16 novembre 2016Date d'inscription 27 novembre 2016 Dernière intervention - 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

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !