Php requete

Bonjour,
si'l vous plait dans le code en desous la requete en commentaitre ne marche pa

<?php
echo " <form method='post' action='' >
<label for ='semestre'>semestre:</label><select name='semestre'>
<option value='s1' >S1</option>
<option value='s2' >S2</option>
<option value='s3' >S3</option>
<option value='s4' >S4</option>
<option value='s5' >S5</option>
<option value='s6'>S6</option>

</select></br>

<label for ='annee'>annee:</label><select name='annee'>

<option value='2009/2010' >2009/2010</option>
<option value='2010/2011' >2010/2011</option>
<option value='2011/2012' >2011/2012</option>
<option value='2012/2013' >2012/2013</option>

</select></br>
<input type='submit'>
</form>";
require("connect.php");
if ( isset($_POST["semestre"]) )
{
// echo "je suis etudiant(e) $snnom inscrit dans le semestre : ".$_POST["semestre"]." pour l'annee :".$_POST["annee"]."</br>";
$sem=$_POST["semestre"];
$ann=$_POST["annee"];
$strSQL = " SELECT * FROM 'semestre' where ( num_sem='$sem' and annee='$ann')";
/*$strSQL ="SELECT cin,num_sem semestre,annee FROM inscrit ins, (

SELECT *
FROM 'semestre'
WHERE (
num_sem ='$sem'
and annee ='$ann'
)
)tem
WHERE ( ins.num_sem = tem.num_sem)
";*/
//connection a la base

$reqst=$bdd->prepare($strSQL);
$reqst->execute();

while($row=$reqst->fetch())
{
if(sizeof($row)==0)
{
echo"<fieldset><legend>erreur !!</legend>

l'etudiant n'est pas inscrit!!!

</fieldset>";
}
else

echo "je suis l' etudiant(e) $snnom inscrit dans le semestre :". $row["num_sem"]." pour l'annee :".$row['annee']."et mon CIN est:".$row['cin']."</br>";

// echo "ma semestre est ".$row['num_sem']." pour l'annee".$row['annee'];

}//fin else
}//fermeture if sizeof

?>

7 réponses

  1. s'il vous plait j'utilise deux requete et lorsque j'affiche le resulta par exemple $tab2=res2->fetch
    print_r(tab2)
    il m'affiche le resumtat de la premiere
    requete
    1. Quelle 1ère requête ?
      D'où vient ce $res2 ?

      J'ose espérer qu'il ne s'agit pas du nom d'alias donné au sous-résultat SQL, si ?
  2. $strSQL = "
    select
    nom ,prenom ,lieu_naiss,date_naiss ,etudiant.cin ,semestre,filier
    from etudiant
    join (
    SELECT cin,res2.num_sem as semestre ,annee
    FROM (
    SELECT * FROM semestre where annee='$ann'
    ) res1
    join (
    SELECT * FROM inscrit where num_sem='$sem'
    ) res2 on res1.num_sem=res2.num_sem
    )res3 on etudiant.cin='$cin'

    Cela n'a rien à voir avec le SQL que j'ai proposé.
    Pourquoi autant utiliser les sous-résultats SQL ? Ils n'ont aucune utilité ici; je dirais même qu'on en abuse. Il vaut mieux savoir d'abord maîtriser les jointures avant d'y avoir recours.
    1. <?php
      echo " <form method='post' action='' >
      <label for ='semestre'>semestre:</label><select name='semestre'>
      <option value='s1' >S1</option>
      <option value='s2' >S2</option>
      <option value='s3' >S3</option>
      <option value='s4' >S4</option>
      <option value='s5' >S5</option>
      <option value='s6'>S6</option>

      </select></br>

      <label for ='annee'>annee:</label><select name='annee'>

      <option value='2009/2010' >2009/2010</option>
      <option value='2010/2011' >2010/2011</option>
      <option value='2011/2012' >2011/2012</option>
      <option value='2012/2013' >2012/2013</option>

      </select></br>
      <input type='submit'>
      </form>";

      //connection a la base
      require("connect.php");
      if ( isset($_POST["semestre"]) )
      {
      $sem=$_POST["semestre"];
      $ann=$_POST["annee"];
      $cin=$_SESSION['cin'];
      $strSQL = "select nom ,prenom ,lieu_naiss,date_naiss ,etudiant.cin ,semestre,filier from etudiant join (SELECT cin,res2.num_sem as semestre ,annee FROM (SELECT * FROM semestre where annee='$ann') res1 join (SELECT * FROM inscrit where num_sem='$sem') res2 on res1.num_sem=res2.num_sem)res3 on etudiant.cin='$cin'";

      ?>

      <style type="text/css">
      th{bgcolor='#00BFAA';
      border-radius:12px;}

      </style>

      <?php

      $reqst=$bdd->prepare($strSQL);
      $reqst->execute();
      $row=$reqst->fetch();
      $fil=$row['filier'];
      $sql = "select module.nom_mod,matiere.nom_mat,note from etudiant,semestre,matiere,note,module,associerfiliere where (semestre.num_sem=s6) and filier='smi' and etudiant.cin='2147483647' and semestre.annee='2011/2012' and associerfiliere.nom_filiere=filier and module.num_sem=semestre.num_sem and note.id_resp=associerfiliere.id_resp and matiere.nom_mod=module.nom_mod and etudiant.cin=note.cin) order by nom_mod";

      $reqst=$bdd->prepare($sql);
      $reqst->execute();

      echo "</br></br><center ><b>RELEVE DE NOTES</b> </center></br></br>";

      echo "<b>". $_SESSION['nom']." ".$_SESSION['prenom']."</b>";
      echo "</br></br>Né le: ".$row['date_naiss']."&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp"."à :&nbsp ".$row['lieu_naiss']."</br></br>";
      echo "CIN : ".$row['cin']."</br></br>";
      echo "inscrit en :<b>".$row['filier']."</b></br>abotenu les notes suivantes:</br></br>";
      $note=$reqst->fetch();
      echo sizeof($note);
      print_r($note);
      while($note=$reqst->fetch())
      {
      echo "sunshine";
      }

      echo "<center> <table bgcolor='#008080' bordercolor='#FF9F00' cellpadding='2' border='3' cellspacing='3'>
      <tr>
      <th>MODULES</th>
      <th>MATIERES</th>
      <th>NOTES</th
      </tr>";

      }

      sil vous plai la requete $sql est esecute avec succe en phpmyadmin mais avec php na pas marché

      echo "</table></center>"
      ?>
      1. $strSQL = "
        SELECT
        inscrit.*,
        semestre.*
        FROM semestre
        INNER JOIN inscrit ON inscrit.num_sem = semestre.num_sem
        WHERE
        semestre.num_sem='$sem'
        AND semestre.annee='$ann'
        ";
        1. de tout facon j'ai resolus le probleme mon probleme nouveau hhh est : est ce que c possible de decomposer un requete par exemple larequte en haut en deux partie :
          par exemple socker resulta de SELECT *
          FROM 'semestre'
          WHERE (
          num_sem ='$sem'
          and annee ='$ann'
          )
          )tem dans un variable $req1 mais est ce que c'est possible de faire la chose suivant $res= $req1->execute()
          et utiliser $res pour effectuer la jointure avec la table inscrit et realiser la requete en haut de la page?? mercii
          1. oui tem c'est un alias pour le resulta de SELECT *
            FROM 'semestre'
            WHERE (
            num_sem ='$sem'
            and annee ='$ann'
            )
            )tem
            parce que il me dit qu'il y'a embeguité pour num_sem
            1. Bonjour,

              cette requête ??

              /*$strSQL ="SELECT cin,num_sem semestre,annee FROM inscrit ins, (
              SELECT *
              FROM 'semestre'
              WHERE (
              num_sem ='$sem'
              and annee ='$ann'
              )
              )tem
              WHERE ( ins.num_sem = tem.num_sem)
              ";*/ 


              ????

              Cherchez.... c'est quoi ce )tem ????