Essaye ça :
<?php
//Affichage des erreurs PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
//connexion propre à la bdd en PDO
try{
$bdd =new PDO('mysql:host=localhost; dbname=pgrdvdm; charset=utf8', 'root', '');
// Activation des erreurs PDO
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// mode de fetch par défaut : FETCH_ASSOC / FETCH_OBJ / FETCH_BOTH
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch(PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
//récupération PROPRE des variables AVANT de les utiliser
$codehopita = !empty($_POST['codehopita']) ? (trim($_POST['codehopita'])) : "";
$codeser = !empty($_POST['codeser']) ? (trim($_POST['codeser'])) : "";
$nommed = !empty($_POST['nommed']) ? (trim($_POST['nommed'])) : "";
$prenommed = !empty($_POST['prenommed']) ? (trim($_POST['prenommed'])) : "";
$mailmed = !empty($_POST['mailmed']) ? (trim($_POST['mailmed'])) : "";
if (isset($_POST['submit'])) {
if ($codehopita&&$codeser&&$nommed&&$prenommed&&$mailmed) {
//preparation de la requete
$sql = "INSERT INTO medecin1(nommed,codeser,prenommed,codehopita,mailmed) VALUES(?,?,?,?,?)"
$datas = array($nommed,$codeser,$prenommed,$codehopita,$mailmed);
//Execution de la requete
try{
$requete = $bdd -> prepare($sql) ;
$requete->execute($datas) ;
}catch(Exception $e){
// en cas d'erreur :
echo " Erreur ! ".$e->getMessage();
echo " Les datas : " ;
print_r($datas);
}
echo '<h4> Enregistrement effectué avec succès !! Cliquez <a href="inscrirelabo.class.php">ici</a> pour d\'autres enregistrements</h4>';
} else {
echo "les champs doivent être saisis";
}
}
//liste des hopitaux
$sql = "SELECT code FROM hopital";
$datas = NULL;
//Execution de la requete
try{
$requete = $bdd -> prepare($sql) ;
$requete->execute($datas) ;
$arr_Hopital = $requete->fetchAll(); // on stocke le resultat de la requete dans un array
}catch(Exception $e){
// en cas d'erreur :
echo " Erreur ! ".$e->getMessage();
echo " Les datas : " ;
print_r($datas);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>inscription</title>
</head>
<body>
<form action="essaie.php" method="post">
<fieldset>
Inscrition des médecins <br/><br/>
<label for="hop">Hopital</label>
<select name="codehopita">
<option>Selectionnez un hopital</option>
<?php
if(!empty($arr_Hopital)){
//on boucle sur l'array pour générer les OPTION du <SELECT>
foreach ($arr_Hopital as $hop){
$code_hop = $hop['code'];
echo "<option value='$code_hop'>$code_hop</option>";
}
}
?>
</select>
<label for="oop">Service</label>
<input type="text" name="codeser" id="oop" value="<?php echo $codeser ;?>"><br/><br/>
<label for="hp">Nom</label>
<input type="text" name="nommed" id="hp" value="<?php echo $nommed ;?>"><br/><br/>
<label for="ph">Prenom</label>
<input type="text" name="prenommed" id="ph" value="<?php echo $prenommed ;?>"><br/><br/>
<label for="lh">Email</label>
<input type="email" name="mailmed" id="lh" value="<?php echo $mailmed ;?>"><br/><br/>
<input type="submit" name="submit" value="Enregistrer">
<!--
les données de la table hopital étant déjà enregistées dans la table hôpital
et ceux de service dans service et j'aimerais que si je clique sur l'input dont le name est codehopita
que les informations de la table hopital s'affichent et que je puisse choisir
-->
</fieldset>
</form>
</body>
</html>
Bien entendu.. ne connaissant pas la structure de ta table hopital.. j'ai du improviser...
Je te laisse faire les modifications nécessaires.
NB: Quand tu postes du code sur le forum, merci de le faire en utilisant les balises de code (et en y précisant le langage afin d'avoir la coloration syntaxique.)
J'ai édité ton message pour les mettre....
Merci d'y penser la prochaine fois.
NB² : Pour faire des listes.. il faut utiliser la balise html <select>. Tu trouveras la documentation necessaire sur le net sans aucune difficulté.
NB3 : Avant de poursuivre dans tes dev.. je t'invite à appliquer les consignes données dans ces deux liens :
https://www.commentcamarche.com/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code
https://www.commentcamarche.com/faq/46512-pdo-gerer-les-erreurs
14 juil. 2018 à 14:53