Message

Fermé
lamisse34 Messages postés 5 Date d'inscription mardi 1 octobre 2013 Statut Membre Dernière intervention 2 octobre 2013 - 2 oct. 2013 à 14:06
Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 - 2 oct. 2013 à 17:44
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

Colbi97 Messages postés 564 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 25 novembre 2015 12
Modifié par Colbi97 le 2/10/2013 à 17:45
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
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