Je viens reposter après avoir cibler le souci auquel je suis confronté ici php-debutant/souci-affichage-requete-sq ... ml#p428619
Après avoir refait mes scripts et cherché une solution, j'en arrive à la conclusion suivante :
1. Le souci semble venir de la concaténation de mes variables (j'ai essayé également avec l'appel d'un tableau en requête "prepare")
2. Quand je valide mon formulaire de recherche en choisissant comme type de recherche "l'identifiant" (5 chiffres), ma requête s'affiche avec mon code actuel mais si je choisi dans mon type de recherche "nom" et que je tape un nom d'une personne présente dans ma bdd, tout s'éxécute sans erreur mais rien ne s'affiche.
Il semble évident que le script ne contient pas d'erreur majeur et que le souci vienne bien de la concaténation (enfin je pense)
Voici les codes (pas fini bien entendu, ils sont simplifiés pour limiter les erreurs dans l'immédiat)
formulaire :
<form action="recherche......../.......php" method="post" enctype="multipart/form-data">
<p>
<fieldset>
<legend>Rechercher</legend>
<label for="type_recherche">Type de recherche par :</label>
<select name="type_recherche" id="type_recherche" required="required">
<option value="ID">ID</option>
<option value="identifiant_client">Identifiant</option>
<option value="nom_client">Nom</option>
<option value="prenom_client">Prénom</option>
<option value="cp_client">Code Postal</option>
<option value="telephone_client">Téléphone</option>
</select>
<input type="text" name="recherche" required="required" maxlength="40" />
</fieldset>
<p><input type="submit" value="Lancer la recherche" name="envoyer"></p>
</p>
</form>
et le script de récupération des données et d'affichage depuis ma bdd<?php
if (isset($_POST["envoyer"])) {
$etat = "erreur";
// On récupère les champs du formulaire, et on arrange leur mise en forme
// trim() enlève les espaces en début et fin de chaine
if (isset($_POST["recherche"])) { $_POST["recherche"]=trim(htmlspecialchars($_POST["recherche"])); }
if (isset($_POST["type_recherche"])) { $_POST["type_recherche"]=trim(htmlspecialchars($_POST["type_recherche"])); }
if (empty($_POST["recherche"])) {
$erreur="Vous n'avez saisi aucune recherche dans la case correspondante...";
}
elseif (empty($_POST["type_recherche"])) {
// On met dans erreur le message qui sera affiché
$erreur="Vous n'avez saisi aucun type de recherche dans la case correspondante...";
}
elseif (!is_string($_POST["recherche"])) {
// On met dans erreur le message qui sera affiché
$erreur="Votre case recherche contient des caractères spéciaux...";
}
elseif (!is_string($_POST["type_recherche"])) {
// On met dans erreur le message qui sera affiché
$erreur="Votre case type de recherche contient des caractères spéciaux...";
}
else {
$etat="ok";
}
}
if ($etat=="ok"){
$recherche=(strtoupper($_POST["recherche"]));
$type_recherche=(strtoupper($_POST["type_recherche"]));
try
{
$bdd = new PDO('mysql:host=localhost;dbname=mabasededonnes', 'root', '');
$bdd->query("SET NAMES UTF8");
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$recherche = $bdd->query('SELECT * FROM client WHERE "'.$type_recherche.'='.$recherche.'" ');
while ($donnees = $recherche->fetch())
{
?>
<b>Date De Création :</b> <?php echo $donnees['jour_creation'] . '/' . $donnees['mois_creation'] . '/' . $donnees['annee_creation']; ?>
<b>Identifiant :</b> <?php echo $donnees['identifiant_client']; ?><br />
<b>Civilité :</b> <?php echo $donnees['civilite_client']; ?><br />
<b>Nom :</b> <?php echo $donnees['nom_client']; ?><br />
<b>Prenom :</b> <?php echo $donnees['prenom_client']; ?><br />
<b>Email :</b> <?php echo $donnees['email_client']; ?><br />
<b>Téléphone :</b> <?php echo $donnees['telephone_client']; ?><br />
<b>Adresse :</b> <?php echo $donnees['adresse_client']; ?><br />
<b>Code Postal :</b> <?php echo $donnees['cp_client']; ?><br />
<b>Ville :</b> <?php echo $donnees['ville_client']; ?><br />
<b>Résidence :</b> <?php echo $donnees['residence_client']; ?><br />
<b>Bâtiment :</b> <?php echo $donnees['batiment_client']; ?><br />
<b>Escalier :</b> <?php echo $donnees['escalier_client']; ?><br />
<b>Etage :</b> <?php echo $donnees['etage_client']; ?><br />
<b>Digicode :</b> <?php echo $donnees['digicode_client']; ?><br />
<b>Appartement :</b> <?php echo $donnees['appartement_client']; ?><br />
<b>Type Cheveux :</b> <?php echo $donnees['type_cheveux']; ?><br />
<b>Nature Cheveux :</b> <?php echo $donnees['nature_cheveux']; ?><br />
<b>Examen Cuir Chevelu :</b> <?php echo $donnees['examen_cuir']; ?><br />
<b>Shampoing :</b> <?php echo $donnees['shampoing']; ?><br />
<b>Couleur Naturelle :</b> <?php echo $donnees['couleur_naturelle']; ?><br />
<b>% Cheveux Blanc :</b> <?php echo $donnees['pourcentage_blanc']; ?><br />
<b>Observations :</b> <?php echo $donnees['observation_client']; ?>
<?php
}
$recherche->closeCursor(); // Termine le traitement de la requête
}
elseif ($etat=="erreur"){
// On affiche le message correspondant à l'erreur
echo "<h4>$erreur <br /><br />
Retour à la page <a href=\"index.php\">Accueil</a> ou à la page <a href=\"........../............./.............../.php\">Gestion Client</a></h4>";
}
else {
header('Location: ........./........../........./.php');
}
?>
PS : J'ai essayé différentes concaténation mais rien n'y fait.Merci d'avance pour votre aide
Cordialement
