A voir également:
- Moteur de recherche sur une table
- Table ascii - Guide
- Table des matières word - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Rechercher ou entrer l'adresse mm - recherche google - Guide
5 réponses
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
Modifié par jordane45 le 3/11/2015 à 15:35
Modifié par jordane45 le 3/11/2015 à 15:35
Bonjour,
Essayes ça :
EDIT correction de la partie affichage:
Cordialement,
Jordane
Essayes ça :
<?php // Tant que possible... Placer le code PHP avant le HTML // c'est plus facile à maintenir ... // Instruction permettant d'afficher les eventuelles erreurs php error_reporting(E_ALL); //Connexion à la BDD: require_once "fspeciales/connecter.php"; //Récupération des variables "propres" // à l'aide de ISSET ou de !Empty $query = !empty($_POST['query']) ? $_POST['query'] : NULL; // Si variable QUERY non vide if($query){ $query = preg_replace("#[^a-z?0-9]#i","",$query); //PREPARATION Requete : $sql= "SELECT id,prenom AS title FROM clients WHERE prenom LIKE :prenom OR nom LIKE :nom"; $array_variables = array(":prenom"=>'%'.$query.'%' ,":nom"=>'%'.$query.'%'); //EXECUTION Requete : try{ $req = $connex->prepare($sql); $req->execute($array_variables); // on stocke le resultat de la requête dans un array $result = $req->fetchAll(); $count = count($result); }catch(Exception $e){ //SI erreur lors de l'execution de la requete echo "<br> Error ! <br>".$e->getMessage(); echo "<br>Variables :<br>"; print_r($array_variables); } } //fin if($query) ?> <!DOCTYPE html> <html> <head> <title> Moteur de recherche</title> <meta charset ='UTF-8'/> </head> <body> if($query){ if($count >= 1) { foreach($result as $row){ echo "$count :le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>"; echo "#".$row['id'].'- Titre: '.$row['prenom']; } } else { echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>"; } } ?> <form action= "<?php echo $_SERVER['PHP_SELF']; ?> " methode= "post "> <br> <br> <label for= "query " >Entrez votre recherche :</label> <input type= "search" name= "query" maxlength= "80" size= "80" id= "query"/> <input type= "submit" value= "Rechercher"> </form> </body> </html>
EDIT correction de la partie affichage:
if($query){ if($count >= 1) { foreach($result as $row){ echo "$count :le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>"; echo "#".$row['id'].'- Titre: '.$row['prenom']; } } else { echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>"; } } ?>
Cordialement,
Jordane
merci jordane-45 pour ton aide, j'ai rectifié le code partout ou vous l'aviez suggeré et aussi au niveau de l'affichage mais ca me donne toujours après avoir effectué une recherche, un écran blanc comportant uniquement le formulaire
Pouvez vous jeter encore un coup d'oeil sur le code , il me semble que sur celui que vous m'aviez proposé , 'il doit y exister deux bloc de balise php comme suit:
d
Pouvez vous jeter encore un coup d'oeil sur le code , il me semble que sur celui que vous m'aviez proposé , 'il doit y exister deux bloc de balise php comme suit:
<?php // Tant que possible... Placer le code PHP avant le HTML // c'est plus facile à maintenir ... // Instruction permettant d'afficher les eventuelles erreurs php error_reporting(E_ALL); //Connexion à la BDD: require_once "fspeciales/connecter.php"; //Récupération des variables "propres" // à l'aide de ISSET ou de !Empty $query = !empty($_POST['query']) ? $_POST['query'] : NULL; // Si variable QUERY non vide if($query){ $query = preg_replace("#[^a-z?0-9]#i","",$query); //PREPARATION Requete : $sql= "SELECT id,prenom AS title FROM clients WHERE prenom LIKE :prenom OR nom LIKE :nom"; $array_variables = array(":prenom"=>'%'.$query.'%' ,":nom"=>'%'.$query.'%'); //EXECUTION Requete : try{ $req = $connex->prepare($sql); $req->execute($array_variables); // on stocke le resultat de la requête dans un array $result = $req->fetchAll(); $count = count($result); }catch(Exception $e){ //SI erreur lors de l'execution de la requete echo "<br> Error ! <br>".$e->getMessage(); echo "<br>Variables :<br>"; print_r($array_variables); } } //fin if($query) ?> <!DOCTYPE html> <html> <head> <title> Moteur de recherche</title> <meta charset ='UTF-8'/> </head> <body> //affichage <?php if($query) { if($count >= 1) { foreach($result as $row) { echo "$count :le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>"; echo "#".$row['id'].'- Titre: '.$row['prenom']; } } else { echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>"; } } ?> <form action= "<?php echo $_SERVER['PHP_SELF']; ?> " methode= "post "> <br> <br> <label for= "query " >Entrez votre recherche :</label> <input type= "search" name= "query" maxlength= "80" size= "80" id= "query"/> <input type= "submit" value= "Rechercher"> </form> </body> </html>
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
4 nov. 2015 à 18:17
4 nov. 2015 à 18:17
1 - Merci d'utiliser les balises de code pour poster ton code !
2 - Change ton form
Par :
2 - Change ton form
<form action= "<?php echo $_SERVER['PHP_SELF']; ?> " methode= "post ">
Par :
<form action= "" method= "POST">
je l'ai fait jordane mais le probleme demeure
j'ai fait comme ceci:
<form action= "recherche.php" methode= "post ">
j'ai fait comme ceci:
<form action= "recherche.php" methode= "post ">
jordane45
Messages postés
38366
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
1 janvier 2025
4 720
5 nov. 2015 à 07:35
5 nov. 2015 à 07:35
...tu as lu ce que j'ai écrit ????
METHOD (sans E) ...
et si tu restes dans la même page... ACTION a vide.
METHOD (sans E) ...
et si tu restes dans la même page... ACTION a vide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai rectifié mais toujours rien, le navigateur m'affiche l'erreur suivante;
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\programme_recherche\jordan.php on line 74
je vous remontre le code rectifié suivants vos recommandations
Notice: Undefined index: prenom in C:\wamp\www\Nouveau dossier (2)\programme_recherche\jordan.php on line 74
je vous remontre le code rectifié suivants vos recommandations
<?php
// Tant que possible... Placer le code PHP avant le HTML
// c'est plus facile à maintenir ...
// Instruction permettant d'afficher les eventuelles erreurs php
error_reporting(E_ALL);
//Connexion à la BDD:
require_once "fspeciales/connecter.php";
//Récupération des variables "propres"
// à l'aide de ISSET ou de !Empty
$query = !empty($_POST['query']) ? $_POST['query'] : NULL;
// Si variable QUERY non vide
if($query){
$query = preg_replace("#[^a-z?0-9]#i","",$query);
//PREPARATION Requete :
$sql= "SELECT id,prenom AS title
FROM clients
WHERE prenom LIKE :prenom OR nom LIKE :nom";
$array_variables = array(":prenom"=>'%'.$query.'%'
,":nom"=>'%'.$query.'%');
//EXECUTION Requete :
try{
$req = $connex->prepare($sql);
$req->execute($array_variables);
// on stocke le resultat de la requête dans un array
$result = $req->fetchAll();
$count = count($result);
}catch(Exception $e){
//SI erreur lors de l'execution de la requete
echo "<br> Error !
<br>".$e->getMessage();
echo "<br>Variables :<br>";
print_r($array_variables);
}
} //fin if($query)
?>
<!DOCTYPE html>
<html>
<head>
<title> Moteur de recherche</title>
<meta charset ='UTF-8'/>
</head>
<body>
//affichage
<?php
if($query)
{
if($count >= 1)
{
foreach($result as $row)
{
echo "$count :le(s) résultat(s) trouvé(s)pour <strong>$query</strong> </hr>";
echo "#".$row['id'].'- Titre: '.$row['prenom'];
}
}
else
{
echo"0 resultat trouvé pour votre recherche :<strong>$query</strong></hr>";
}
}
?>
<form action= "" method= "POST">
<br>
<br>
<label for= "query " >Entrez votre recherche :</label>
<input type= "search" name= "query" maxlength= "80" size= "80" id= "query"/>
<input type= "submit" value= "Rechercher">
</form>
</body>
</html>