Erreur de recherche
rimjridi50
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
DelNC Messages postés 2234 Date d'inscription Statut Membre Dernière intervention -
j'ai creé un code de recherche des livre, lorsque je lance un recherche il m'affiche rien :( :( ???
voila le code !!
<html>
<head>
<meta charset="utf-8">
<title>Recherche</title>
</head>
<?php
$connexion=mysqli_connect("localhost","root","","biblio") or die('Error');
//connexion a la base
if(isset($_POST['go'])){
if (isset($_POST['recherche'])) {
$recherche=$_POST['recherche'];
//Récupère la variable
$recherche=preg_split("/[\s,]+/","$recherche");
//notayer la requete de l'utilisateur
$req ="SELECT * FROM livre l editeur e auteur a where l.titre like'%recherche%' or e.editeur like'%recherche%' or a.nomauteur like '%recherche%' or a.prenomauteur like '%recherche%' or l.theme like '%recherche%' ";
$query=mysqli_query($connexion,$req)or die('Error');
if (empty($query)) {
echo "erreur";
}
else{
$resultats = mysqli_num_rows($query);
//affichage des resultats sous forme d'un tableau
if (null!==($resultats)) {
while ($res=mysqli_fetch_row($resultats)){
$titre=$res['titre'];
$auteur=$res['auteur'];
$numlivre=$res['numlivre'];
echo "<ul>\n";
echo "<li>" . "<a href=\"recherche.php?id=$numlivre\">" .$titre . " " . $auteur . "</a></li>\n";
}
}
}
}
else{
echo "erreur";
}
}
</html>
voila le code !!
<html>
<head>
<meta charset="utf-8">
<title>Recherche</title>
</head>
<?php
$connexion=mysqli_connect("localhost","root","","biblio") or die('Error');
//connexion a la base
if(isset($_POST['go'])){
if (isset($_POST['recherche'])) {
$recherche=$_POST['recherche'];
//Récupère la variable
$recherche=preg_split("/[\s,]+/","$recherche");
//notayer la requete de l'utilisateur
$req ="SELECT * FROM livre l editeur e auteur a where l.titre like'%recherche%' or e.editeur like'%recherche%' or a.nomauteur like '%recherche%' or a.prenomauteur like '%recherche%' or l.theme like '%recherche%' ";
$query=mysqli_query($connexion,$req)or die('Error');
if (empty($query)) {
echo "erreur";
}
else{
$resultats = mysqli_num_rows($query);
//affichage des resultats sous forme d'un tableau
if (null!==($resultats)) {
while ($res=mysqli_fetch_row($resultats)){
$titre=$res['titre'];
$auteur=$res['auteur'];
$numlivre=$res['numlivre'];
echo "<ul>\n";
echo "<li>" . "<a href=\"recherche.php?id=$numlivre\">" .$titre . " " . $auteur . "</a></li>\n";
}
}
}
}
else{
echo "erreur";
}
}
</html>
A voir également:
- Erreur de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Recherche photo - Guide
- Je recherche une chanson - Guide
- Erreur t32 ✓ - Forum Livebox
- Erreur 0x80070643 - Accueil - Windows
2 réponses
Bonjour rimjridi50
Avant tout, un bonjour et s'il vous plaît de ta part seraient sympas
Pour recupérer la variable, voilà comment je procède
Pour la requête, essaye déjà avec des variable que tu connais pour être certain que la syntaxe soit bonne.
Si la requête est bonne dans ta page en php, tu mets ta requête
Avec display_resultat($result); tu appelles une fonctions qui affiche le résultat de la requête
Avant tout, un bonjour et s'il vous plaît de ta part seraient sympas
Pour recupérer la variable, voilà comment je procède
<?php if(isset($_REQUEST["recherche"])) {$recherche= $_REQUEST["recherche"];} else{$recherche = "";} ?>
Pour la requête, essaye déjà avec des variable que tu connais pour être certain que la syntaxe soit bonne.
Si la requête est bonne dans ta page en php, tu mets ta requête
<?php $query = "SELECT * "; $query .= "FROM "; $query .= "WHERE "; ... $query .= ";"; $result = execute_query($query); display_resultat($result); ?>
Avec display_resultat($result); tu appelles une fonctions qui affiche le résultat de la requête
function display_resultat($result) { echo "<table border=1>\n"; //HEADER ROW echo "<tr>\n"; echo " <th width=100> Colonne1 </th>\n"; echo " <th width=100> Colonne2 </th>\n"; echo " <th width=100> Colonne3 </th>\n"; echo "</tr>\n"; //DATA ROWS while($row = mysql_fetch_array($result)) { echo "<tr>\n"; echo " <td class=\"center\">" . $row[0] . "</td>\n"; echo " <td class=\"center\">" . $row[1] . "</td>\n"; echo " <td class=\"center\">" . $row[2] . "</td>\n"; echo "</tr>\n"; }//end while echo "</table>\n"; }//end function
Bonjour
Dans ta requête, tu cherches le mot 'recherche' et non pas la variable $recherche : tu n'as pas mis le '$'.
De plus, ton preg_split te rend un tableau : tu ne peux pas l'utiliser tel quel dans ta recherche, il faut rechercher $recherche[0] ou $recherche[1], etc., mais pas $recherche tout court. Attention à l'écriture des éléments de tableaux dans les chaînes en PHP, si tu ne maîtrises pas il vaut mieux utiliser la concaténation.
Tu n'as pas mis de virgule entre tes noms de tables.
Tu n'as pas mis de condition de jointure entre tables : tu vas avoir beaucoup plus de résultats que ce que tu attends, et des résultats bizarres.
Au vu de toutes ces erreurs, je te conseille de commencer par faire quelque chose de plus simple et d'ajouter les fonctionnalités progressivement, car là, ça fait beaucoup à la fois.
Dans ta requête, tu cherches le mot 'recherche' et non pas la variable $recherche : tu n'as pas mis le '$'.
De plus, ton preg_split te rend un tableau : tu ne peux pas l'utiliser tel quel dans ta recherche, il faut rechercher $recherche[0] ou $recherche[1], etc., mais pas $recherche tout court. Attention à l'écriture des éléments de tableaux dans les chaînes en PHP, si tu ne maîtrises pas il vaut mieux utiliser la concaténation.
Tu n'as pas mis de virgule entre tes noms de tables.
Tu n'as pas mis de condition de jointure entre tables : tu vas avoir beaucoup plus de résultats que ce que tu attends, et des résultats bizarres.
Au vu de toutes ces erreurs, je te conseille de commencer par faire quelque chose de plus simple et d'ajouter les fonctionnalités progressivement, car là, ça fait beaucoup à la fois.
un grand merci à vous pour votre aide :) :)