par
kevinbelin » 05 janv. 2023, 23:57
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>';
}
?>
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] $req = "SELECT * FROM agents WHERE nom OR matricule LIKE '%$requete%'"; [/code]
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]<?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>';
}
?>
[/code]