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. 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. 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. $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. <?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
            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. 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. 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 ????