Page 1 sur 1

Problème de requête SQL

Posté : 05 janv. 2023, 23:57
par kevinbelin
Bonjour, à tous.
Avant toutes choses, je vous fait par de mes meilleurs voeux pour cette année 2023.

Depuis quelque jour, je suis en charge d'un petit projet en PHP. Hors je ne suis pas développeur...
Mon but étant de créer une page de recherche qui récupère des éléments dans ma base de donnée.

Je souhaite que ma recherche me retourne ce qu'elle trouve dans 2 colonne "Matricule" et "Nom" de ma BDD via une zone de texte rempli.
Exemple Nom : Paul / Matricule : 007
Si je recherche Paul : Je récupère son nom et son matricule et vis versa

Voici ma requête

Code : Tout sélectionner

$req = "SELECT * FROM agents WHERE nom OR matricule LIKE '%$requete%'";
Malheureusement elle ne s'effectue que dans le premier argument "nom". Si j'inverse avec matricule le résultat s'inverse également.

Auriez vous une idée afin de m'aider sur ce problème svp ? :)

Voici l'intégralité du code de ma page

Code : Tout sélectionner

<?php // Connexion à la base donnée $db_server = 'localhost'; // Adresse du serveur MySQL $db_name = 'mabase'; // Nom de la base de données $db_user_login = 'root'; // Nom de l'utilisateur $db_user_pass = ''; // Mot de passe de l'utilisateur // Ouvre une connexion au serveur MySQL $conn = mysqli_connect($db_server,$db_user_login, $db_user_pass, $db_name); ?> <?php if ( isset($_POST['requete']) ) $requete = htmlentities($conn->real_escape_string($_POST['requete'])); if (!empty($requete)) { $req = "SELECT * FROM matable WHERE nom OR matricule LIKE '%$requete%'"; $exec = $conn->query($req); // exécuter la requête $nb_resultats = $exec->num_rows; // compter les résultats if($nb_resultats != 0) { echo '<center>'; echo ' <form action="" method="Post"> <input type="text" name="requete" size="60px"> <input type="submit" value="Rechercher"> </form>'; echo '</center>'; echo '<font color="blue">Resultat de votre recherche </font><br/> <font size="2px">'.$nb_resultats.'</font>'; if($nb_resultats > 1) { echo ' resultats '; } else { echo ' resultats trouve '; } echo 'dans notre base de donnees :'; while($donnees = mysqli_fetch_array($exec)) { ?> <?php echo ''.$donnees['nom'].' '.$donnees['matricule'].''; ?> <?php } // fin de la boucle ?> <?php } else { echo ' <form action="" method="Post"> <input type="text" name="requete" size="60px"> <input type="submit" value="Rechercher"> </form>'; echo '<h5>Pas de resultats</h3>'; echo '<pre>Nous n avons trouver aucun resultats pour votre requete <font color="blue">' .$_POST['requete'].'</font></pre>'; } } else { echo '<center>'; echo ' <form action="" method="Post"> <input type="text" name="requete" size="60px"> <input type="submit" value="Rechercher"> </form>'; echo '</center>'; } ?>

Re: Problème de requête SQL

Posté : 06 janv. 2023, 00:07
par or 1
$req = "SELECT * FROM agents WHERE nom LIKE '%$requete%' OR matricule LIKE '%$requete%'";

Re: Problème de requête SQL

Posté : 06 janv. 2023, 00:14
par kevinbelin
Merci beaucoup de votre réactivité c'est super !