Erreur sql
Résolu/Fermé
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
-
23 déc. 2011 à 11:08
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 28 déc. 2011 à 00:17
fm825 Messages postés 522 Date d'inscription samedi 3 mai 2008 Statut Membre Dernière intervention 13 septembre 2014 - 28 déc. 2011 à 00:17
A voir également:
- Erreur sql
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3005 france tv - Forum TV & Vidéo
- Erreur 5000 france tv - Forum iPhone
9 réponses
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 00:29
24 déc. 2011 à 00:29
Salut,
Visiblement $numstart n'est pas défini car je vois "LIMIT ,6"
Visiblement $numstart n'est pas défini car je vois "LIMIT ,6"
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
24 déc. 2011 à 10:22
24 déc. 2011 à 10:22
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
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 10:41
24 déc. 2011 à 10:41
Salut,
Tu as oublié de fermer une parenthèse ;)
if ( isset($_GET['cat']) ) {
Tu as oublié de fermer une parenthèse ;)
if ( isset($_GET['cat']) ) {
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
24 déc. 2011 à 11:23
24 déc. 2011 à 11:23
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
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 11:29
24 déc. 2011 à 11:29
Essaie de faire ça déjà : mysql_query($req) || die(mysql_error());
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
24 déc. 2011 à 11:47
24 déc. 2011 à 11:47
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...
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 12:06
24 déc. 2011 à 12:06
En fait, faudrait le faire sans mysql_num_rows pour le moment, pour voir si il y a un souci avec la requête en elle même
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 12:07
24 déc. 2011 à 12:07
(Et tu as fait une erreur : $nb = mysql_num_rows(mysql_query($req)) || die(mysql_error()); )
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
Modifié par fm825 le 24/12/2011 à 14:25
Modifié par fm825 le 24/12/2011 à 14:25
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
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 17:31
24 déc. 2011 à 17:31
Effectivement, tu construis ta requête avec $sql, et tu lui donnes $req au final... !
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
24 déc. 2011 à 17:41
24 déc. 2011 à 17:41
Effectivement j'y vois rien aujourd'hui. Maintenat j'ai plus d'erreur, il faut que j'ajuste la pagination quand il y'a beaucoup de résultat mais je pense que je vais chercher ...
Merci
Merci
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
24 déc. 2011 à 17:43
24 déc. 2011 à 17:43
D'accord, de rien ;)
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
28 déc. 2011 à 00:03
28 déc. 2011 à 00:03
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
Bonsoir
Ta requête est de la forme
SELECT * FROM articles WHERE (truc) (machin) ORDER BY ...
Ce n'est pas correct, il te faut un AND ou un OR entre (truc) et (machin) selon ce que tu cherches à faire
Ta requête est de la forme
SELECT * FROM articles WHERE (truc) (machin) ORDER BY ...
Ce n'est pas correct, il te faut un AND ou un OR entre (truc) et (machin) selon ce que tu cherches à faire
fm825
Messages postés
522
Date d'inscription
samedi 3 mai 2008
Statut
Membre
Dernière intervention
13 septembre 2014
36
28 déc. 2011 à 00:17
28 déc. 2011 à 00:17
Oui je viens de remarquer mon opérateur était dans une condition et donc n'était pas présent j'ai corrigé cela maintenant cela fonctionne mieux...