Salut,
Normale que ton code ne fonctionne pas, il y a plein de fautes
- Les requêtes préparées ne s'écrivent pas comme ça
echo($result->pays); ?> => Il manque des choses là
- 2 Formulaires = 2 pages distinctes (Tu t'y retrouveras mieux)
- Ne pas utiliser
isset pour les formulaires, car les champs du formulaire, même vide seront définie dans le variable$_POST
Dans une requête préparée, on place des clés qu'on vient remplacer par les valeurs au moment de l'éxécution. Ici tu mets directement des valeurs.
Exemple de requête préparée
<?php
$stmt = $conn->prepare('SELECT * FROM table WHERE col_1 = :col_1 AND col_2 = :col_2'); // :col_1 et :col_2 sont mes clés à remplacer plus tard
$stmt->execute([
// Clé à remplacer dans le requête => Valeur à associer
'col_1' => 'Ma valeur pour col_1',
'col_2' => 'Ma valeur pour col_2'
]);
Je me suis permis de reprendre ton code et de le modifier. Je sais pas si ça fonctionne, je ne l'ai pas testé. Mais ca t'orientes sur la façon dont tu dois coder.
C'est pas dit que ça fonctionne. Tu vas devoir débuger et adapter à ton cas si ça balance des erreurs.
<?php
include 'set.php';
$isEdit = false;
if (!empty($_POST['recherche'])) {
if (!empty($_POST['nom']) && $_POST['email']) {
$nom = htmlentities($_POST['nom']);
$email = htmlentities($_POST['email']);
// Utilisation de LIKE à la place de =, LIKE est plus associé à une fonction de recherche
$stmt = $base_form->prepare('SELECT * FROM client WHERE nom LIKE :nom AND email LIKE :email');
$stmt->execute([
'nom' => "%$nom%", // %$nom% => toutes chaînes contenants le contenu de la variable $nom
'email' => "%$email%"
]);
$res = $stmt->fetchAll(PDO::FETCH_OBJ);
$isEdit = true; // On passe en mode édition
} else {
die('Le formulaire ne peut être vide');
}
} elseif (!empty($_POST['modifier'])) {
if (!empty($_POST['nom']) /* && A compléter */) {
$isEdit = false; // On passe en mode recherche
} else {
die('Le formulaire ne peut être vide');
}
}
?>
<link rel="stylesheet" media="screen" type="text/css" href="style/inserstyl.css" />
<?php if (!$isEdit): ?>
<!-- Formulaire de recherche -->
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
<div class="input-line">
<span class="icon"><i class="fa fa-user-circle-o fa-1x" aria-hidden="true"></i></span>
<input class="put" type="first-name" name="nom" placeholder="Votre nom" value="">
</div>
<div class="input-line">
<span class="icon"> <i class="fa fa-envelope-o fa-1x" aria-hidden="true"></i></span>
<span></span><input class="put" type="email" name="email" placeholder="Votre Adresse mail" value="">
</div>
<div class="input-line">
<input class="btn" type="submit" name="recherche" value="Rechercher">
<INPUT TYPE="reset" class="btn" NAME="annuler" VALUE=" Annuler ">
</div>
</form>
<?php else; ?>
<?php foreach ($res as $v): ?>
<!-- Formulaire de modification -->
<form action="<?= $_SERVER['PHP_SELF']; ?>" method="post">
<div class="input-line">
<span class="icon"><i class="fa fa-user-circle-o fa-1x" aria-hidden="true"></i></span>
<input class="put" type="first-name" name="nom" placeholder="Votre nom" value="<?= $v->nom; ?>">
</div>
<div class="input-line">
<span class="icon"><i class="fa fa-list-ul fa-21x" aria-hidden="true"></i></span>
<input class="put" type="last-name" name="prenom" placeholder="Votre Prénom" value="<?= $v->prenom; ?>">
</div>
<div class="input-line">
<span class="icon"> <i class="fa fa-envelope-o fa-1x" aria-hidden="true"></i></span>
<span></span><input class="put" type="email" name="email" placeholder="Votre Adresse mail" value="<?= $v->email; ?>">
</div>
<div class="input-line">
<span class="icon"> <i class="fa fa-envelope-o fa-1x" aria-hidden="true"></i></span>
<span></span><input class="put" type="text" name="pays" placeholder="Pays" value="<?= $v->pays; ?>">
</div>
<div class="input-line">
<span class="icon"> <i class="fa fa-envelope-o fa-1x" aria-hidden="true"></i></span>
<span></span><input class="put" type="text" name="ville" placeholder="Ville" value="<?= $v->ville; ?>" />
</div>
<div class="input-line">
<input class="btn" type="submit" name="modifier" value="Modifier">
<INPUT TYPE="reset" class="btn" NAME="annuler" VALUE=" Annuler ">
</div>
</form>
<?php endforeach; ?>
<?php endif; ?>