Pgm

Fermé
lamisse34 Messages postés 5 Date d'inscription mardi 1 octobre 2013 Statut Membre Dernière intervention 2 octobre 2013 - 1 oct. 2013 à 21:46
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 - 1 oct. 2013 à 22:28
salut tout le monde,

voici mon script php qui permet à un patient de prendre rendez-vous par internet, mais je veux ajouter un message d'erreur en cas il prends le rendez-vous à la meme heure qu'un autre; comme l'heure est ma clé primaire il affiche toujours duplication de la clé, mais un patient ne va jamais comprendre ce message si on heberge le site, pouvez vous m'indiquer comment résoudre ce pbm.

<?php
include ('connexion.php');
if(isset($_POST['Submit2']))
{
$Heur=$_POST['Heur'];
$Date=$_POST['Date'];
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$tel=$_POST['tel'];
mysql_query("insert into rendez_vous(Heur_RDV,Dat_RDV,Nom_pat,Pren_pat, Ntel_pat)
values('$Heur','$Date','$Nom','$Prenom','$tel')")or die(mysql_error());
?>
<script type="text/javascript">
alert(" le rendez-vous est enregisté avec succés");
</script>
<?php
}
?>
MERCI.

1 réponse

Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
1 oct. 2013 à 22:01
Bonsoir,

c'est une très mauvaise idée de mettre l'heure en clé primaire et encore plus mauvaise de la séparer de la date.

Ce n'est pas bien non plus d'utiliser les fonctions obsolètes tels que celles commençant par mysql_

https://www.php.net/manual/fr/function.mysql-connect.php

C'est très important d'apprendre à utiliser pdo, rien que pour la sécurité. avec ton script, on peut faire a peut près tout ce que l'on veut dans ta base de données. voir les injection sql...

https://www.php.net/pdo

pdo permet les requêtes préparés ce qui permet de rendre impossible les injections sql si les requêtes sont bien faites.

les alert en javascript sont à proscrire à la limite ca peut être utilise pour débugger un code mais pas plus et même dans ce cas console.log() est bien plus utile car il ne bloque pas le code.

https://www.alsacreations.com/astuce/lire/1436-console-javascript.html

Sinon pour ton problème il faut que tu n'autorises que les périodes non réservé dans ton formulaire. et que tu vérifie qu'elles le sont bien à sa réception avant de les insérer dans ta base de donnée. Et surtout en utilisant pdo.

écrire

$heure = $_POST['heure'];

ne sert strictement à rien d'autre que de consommer de la mémoire vive et du processeur en dupliquant inutilement une variable.
0
Atropa Messages postés 1940 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 11 mai 2014 274
1 oct. 2013 à 22:28
Si les patients doivent être inscrit sur le site pour prendre le rdv la structure de ta table doit être

id,date,idPatient

et si il y a plusieurs médecins tu peux ajouter un champ idMedecin

mais rien de plus.


pour récupérer les rdv d'une journée par exemple tu peux faire :
SELECT rdv.date AS date,patient.name AS name ,patient.lastname AS lastname,patient.tel AS tel FROM rdv,patient WHERE rdv.date >= :dateStart && rdv.date <= :dateEnd ORDER BY rdv.date GROUP BY rdv.date

et si il y a plusieurs médecin ajouter la table médecin
0