Message

bonjour,
je veux afficher un message d'erreur quand un patient prend un rendez vous qui déja pris voila mon script
<?php
include ('connexion.php');
if(isset($_POST['Submit2']))
{

$Heurdat=$_POST['Heurdat'];
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$tel=$_POST['tel'];
$b=mysql_query("select rendez_vous where Heurdat_RDV='".$Heurdat."'");
while($d =mysql_fetch_array($b);
{
echo"Non disponible";}
{
mysql_query("insert into rendez_vous(Heurdat_RDV,Nom_pat,Pren_pat, Ntel_pat)
values('$Heurdat','$Nom','$Prenom','$tel')")or die(mysql_error());}
?>
<script type="text/javascript">
alert(" le rendez-vous est enregisté avec succés");
</script>
<?php
}
?>

2 réponses

  1. Il n'y a aucune méthode de vérification dans le code que tu nous a mis ...
    il manque un rowcount () ou un mysql_num_rows avant de faire un echo...
    Le while est complétement inutile ici.

    bref, un peu baclée comme code...
    -1
    1. Bonjour,

      @Varec : OK, le code n'est pas opérationnel, mais on a tous commencé un jour et je ne pense pas que ton message l'aide beaucoup...

      @lamisse34 : En effet, en l'état actuel, ton code ne test pas la présence d'un rendez-vous dans ta base de données, on va essayer de t'expliquer pourquoi et comment t'en sortir.

      $b=mysql_query("select rendez_vous where Heurdat_RDV='".$Heurdat."'"); -> OK, là tu fait une requête pour voir si il existe déjà un rendez-vous à la date et l'heure choisie

      while($d =mysql_fetch_array($b);
      {
      echo"Non disponible";}
      -> là par contre tu fais une boucle demandant d'inscrire chaque ligne du résultat de ta requête dans une ligne d'une variable de type array nommé $d et d'afficher à l'écran "Non disponible" autant de fois qu'il y a de rendez-vous déjà présent en base.

      { -> D'où vient cette ouverture ?

      mysql_query("insert into rendez_vous(Heurdat_RDV,Nom_pat,Pren_pat, Ntel_pat)
      values('$Heurdat','$Nom','$Prenom','$tel')")or die(mysql_error());}
      -> et maintenant tu rentre le rendez-vous dans la bdd sans avoir réellement effectué ton test.

      Je te propose :

      $b=mysql_query("select rendez_vous where Heurdat_RDV='".$Heurdat."'"); -> on conserve la requête permettant de savoir si un rendez-vous existe déjà

      $nb_rdv = mysql_num_rows($b); -> on compte le nombre de rdv retrouvés dans la bdd et on inscrit ce nombre dans une variable nommée $nb_rdv

      if ($nb_rdv==0) { -> on regarde si le nombre de rendez-vous déjà présent est bien de 0

      mysql_query("insert into rendez_vous(Heurdat_RDV,Nom_pat,Pren_pat, Ntel_pat)
      values('$Heurdat','$Nom','$Prenom','$tel')")or die(mysql_error());}<ital> -> on rentre le rendez-vous dans la base

      <ital>?>
      <script type="text/javascript">
      alert(" le rendez-vous est enregisté avec succés");
      </script>
      <?php
      -> et on affiche ton message de succès

      } else { -> si le nombre de rendez-vous déjà présent est différent de 0

      ?>
      <script type="text/javascript">
      alert(" un rendez-vous existe déjà");
      </script>
      <?php }
      -> là j'ai juste repris ton message de réussite pour l'appliquer sur une erreur

      Fatal error: Call to undefined function think() in /me/head/brain.php on line 11
      In a world without walls and fences, who needs windows and gates ?
      0