Erreur sql
Résolu
fm825
Messages postés
522
Date d'inscription
Statut
Membre
Dernière intervention
-
fm825 Messages postés 522 Date d'inscription Statut Membre Dernière intervention -
fm825 Messages postés 522 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'essaye de faire un moteur de recherche pour mon site qui rechercherais dans la base de donné mais j'ai une erreur :
Error with request SELECT * FROM articles WHERE ptitre LIKE '%test%' OR categorie LIKE '%test%' OR article_content LIKE '%test%' ORDER BY article_pub DESC LIMIT ,6
Voici le scripte que j'utilise je ne vois pas ou pourrait être l'erreur:
Je ne vois pas ou j'ai pu commettre une erreur si quel qu'un peu m'aider sa serait top.
Merci
J'essaye de faire un moteur de recherche pour mon site qui rechercherais dans la base de donné mais j'ai une erreur :
Error with request SELECT * FROM articles WHERE ptitre LIKE '%test%' OR categorie LIKE '%test%' OR article_content LIKE '%test%' ORDER BY article_pub DESC LIMIT ,6
Voici le scripte que j'utilise je ne vois pas ou pourrait être l'erreur:
$req = "SELECT * FROM $db_table WHERE ";
if($type==1)
{//un des mots
$mots = explode(' ',$rec);//En separre lexpression en mots cles
foreach($mots as $mot)
{
$req .= " ptitre LIKE '%".$mot."%' OR categorie LIKE '%".$mot."%' OR article_content LIKE '%".$mot."%' ";
}
}
elseif($type==2)
{//tout les mots
$mots = explode(' ',$rec);
foreach($mots as $mot)
{
$req .= " ptitre LIKE '%".$mot."%' OR categorie LIKE '%".$mot."%' OR article_content LIKE '%".$mot."%' ";
}
}
else
{
//expression exacte
$req .= "ptitre LIKE '%".$rec."%' OR categorie LIKE '%".$rec."%' OR article_content LIKE '%".$rec."%'";
}
//Articles ranges par date
$req .= " ORDER BY article_pub DESC LIMIT $num_start,$nb_article";
Je ne vois pas ou j'ai pu commettre une erreur si quel qu'un peu m'aider sa serait top.
Merci
A voir également:
- Erreur sql
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
9 réponses
Merci il est vrais j'avais oublié de définir $numstart
J'ai encore un problème :
Parse error: syntax error, unexpected '{' in F:\Bureau\WebAppPortable\App\app\recherche.php on line 39
J'ai mis en gras la ligne 39
Merci
J'ai encore un problème :
Parse error: syntax error, unexpected '{' in F:\Bureau\WebAppPortable\App\app\recherche.php on line 39
J'ai mis en gras la ligne 39
if (isset($_GET) && isset($_GET['page']) && is_numeric(trim($_GET['page']))) {
if ($_GET['opr']=1) $operateur = 'AND';
else $operateur= 'OR';
# Get values
$num_page = abs(intval(trim($_GET['page'])));
$num_start = $num_page * $nb_article;
}
if (isset($_GET['cat']) {
$sql = "SELECT * FROM $db_table WHERE categorie LIKE\"%$_GET['cat']%\" AND (ptitre LIKE \"%$tab[0]%\" OR article_content LIKE \"%$tab[0]%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") "; // on boucle pour integrer tous les mots dans la requête
}
}
else {
$sql = "SELECT * FROM $db_table WHERE (ptitre LIKE \"%$tab[0]%\" OR categorie LIKE \"%$tab[0]%\" OR article_content LIKE \"%$tab[0]%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (categorie LIKE \"%$tab[$i]%\" OR ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") "; // on boucle pour integrer tous les mots dans la requête
}
}
Merci
Aujourd'hui j'ai pas les yeux en face des troue ...
Maintenant il m'affiche tous les posts disponible dans la BDD quand je lui envoie "?rec=test" dans l'url alors que il ne devrais donner que deux post qui contienne se mot clé Eten guise d'erreur j'ai :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 91
Ici c'est quoi le problème je fait des requette sql trop longue pour effectuer la recherche.
Car je voulais permettre de rechercher dans ptitre, article_content et categorie sachant que si l'on sélectionne une catégorie dans le moteur de recherche on ne vas pas rechercher les mots clés dedans sachant qu'on a une valeur exacte..
Les messages d'erreur c'est pas vraiment mon truc merci
Maintenant il m'affiche tous les posts disponible dans la BDD quand je lui envoie "?rec=test" dans l'url alors que il ne devrais donner que deux post qui contienne se mot clé Eten guise d'erreur j'ai :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 91
if (isset($_GET) && isset($_GET['page']) && is_numeric(trim($_GET['page']))) {
if ($_GET['opr']=1) $operateur = 'AND';
else $operateur= 'OR';
# Get values
$num_page = abs(intval(trim($_GET['page'])));
$num_start = $num_page * $nb_article;
}
if (isset($_GET['cat'])) {
$sql = "SELECT * FROM $db_table WHERE categorie LIKE \"%".$_GET['cat']."%\" AND (ptitre LIKE \"%".$tab[0]."%\" OR article_content LIKE \"%".$tab[0]."%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") "; // on boucle pour integrer tous les mots dans la requête
}
}
else {
$sql = "SELECT * FROM $db_table WHERE (ptitre LIKE \"%$tab[0]%\" OR categorie LIKE \"%$tab[0]%\" OR article_content LIKE \"%$tab[0]%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (categorie LIKE \"%$tab[$i]%\" OR ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") "; // on boucle pour integrer tous les mots dans la requête
}
}
$sql.= " ORDER BY article_pub DESC LIMIT $num_start,$nb_article" ;
[...]
printContent($req, 0); // revoie les posts
$nb = mysql_num_rows(mysql_query($req));
if($nb == 0) echo '<div class="post">Fin des posts...</div>';
Ici c'est quoi le problème je fait des requette sql trop longue pour effectuer la recherche.
Car je voulais permettre de rechercher dans ptitre, article_content et categorie sachant que si l'on sélectionne une catégorie dans le moteur de recherche on ne vas pas rechercher les mots clés dedans sachant qu'on a une valeur exacte..
Les messages d'erreur c'est pas vraiment mon truc merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Sa me donne la même erreur si je met
$nb = mysql_num_rows(mysql_query($req) || die(mysql_error()));
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 90
Il incrimine la ligne du dessus j'ai l'impression que compté lui donne mal a la base...
$nb = mysql_num_rows(mysql_query($req) || die(mysql_error()));
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 90
Il incrimine la ligne du dessus j'ai l'impression que compté lui donne mal a la base...
L'erreur et du au faite que j'avais oublié de rafraichir le cache
donc J'ai :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 91
Query was empty
pour : $nb = mysql_num_rows(mysql_query($req)) || die(mysql_error());
et pour $nb =mysql_query($req) || die(mysql_error());
J'ai seulement : Query was empty
donc J'ai :
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Bureau\WebAppPortable\App\app\recherche.php on line 91
Query was empty
pour : $nb = mysql_num_rows(mysql_query($req)) || die(mysql_error());
et pour $nb =mysql_query($req) || die(mysql_error());
J'ai seulement : Query was empty
Bonsoir,
J'ai de nouveau un problème avec des requettes plus gros voilà le code retourné :
Error with request SELECT * FROM articles WHERE (ptitre LIKE "%test%" OR categorie LIKE "%test%" OR article_content LIKE "%test%") (categorie LIKE "%data%" OR ptitre LIKE "%data%" OR article_content LIKE "%data%") ORDER BY article_pub DESC LIMIT 0,6
J'ai utilisé :
http://127.0.0.1/recherche.php?cat=macat&rec=test+data
Le code utilisé est le suivant :
Si l'on peut me dire quelle est le problème
Merci
J'ai de nouveau un problème avec des requettes plus gros voilà le code retourné :
Error with request SELECT * FROM articles WHERE (ptitre LIKE "%test%" OR categorie LIKE "%test%" OR article_content LIKE "%test%") (categorie LIKE "%data%" OR ptitre LIKE "%data%" OR article_content LIKE "%data%") ORDER BY article_pub DESC LIMIT 0,6
J'ai utilisé :
http://127.0.0.1/recherche.php?cat=macat&rec=test+data
Le code utilisé est le suivant :
$recherche=strtolower($_GET['rec']);
$mots = str_replace("+", " ", trim($recherche));
$tab=explode(" " , $mots);
$nb=count($tab); // on compte le nbr d'élément du tableau.
if (isset($_GET) && isset($_GET['page']) && is_numeric(trim($_GET['page']))) {
if ($_GET['opr']=1) $operateur = 'AND';
else $operateur= 'OR';
$num_page = abs(intval(trim($_GET['page'])));
$num_start = $num_page * $nb_article;
}
if (!isset($_GET['cat']) or $_GET['cat']='nocat') {
$sql = "SELECT * FROM $db_table WHERE (ptitre LIKE \"%$tab[0]%\" OR categorie LIKE \"%$tab[0]%\" OR article_content LIKE \"%$tab[0]%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (categorie LIKE \"%$tab[$i]%\" OR ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") "; // on boucle pour integrer tous les mots dans la requête
}
}
else {
$sql = "SELECT * FROM $db_table WHERE categorie LIKE \"%".$_GET['cat']."%\" AND (ptitre LIKE \"%".$tab[0]."%\" OR article_content LIKE \"%".$tab[0]."%\") ";
for($i=1 ; $i<$nb; $i++)
{
$sql.="$operateur (ptitre LIKE \"%$tab[$i]%\" OR article_content LIKE \"%$tab[$i]%\") ";
}
}
$sql.= " ORDER BY article_pub DESC LIMIT $num_start,$nb_article" ;
Si l'on peut me dire quelle est le problème
Merci