Page 1 sur 1

pb sur une requete

Posté : 26 déc. 2011, 12:26
par damien_55
Bonjour a tous,

J'ai un petit soucis sur une requete:

j'ai cette requete:
/* on selectionne le contenu de la page */
$page = mysql_fetch_array(mysql_query("SELECT id, titre, contenu, reference, source, rubrique
					FROM xxxxx
et aprés:
// dans depeches
function recherche_news(&$content, $q) {
	[b]$categories = mysql_query("select * from news_categories WHERE rubrique=5");[/b]	while($categorie = mysql_fetch_array($categories)) {
		$sql = generer_requete("news", "titre", $q, 'categorie='.$categorie['id'],"date");
		$buffer = mysql_query($sql);
		$count = mysql_num_rows($buffer);
En fait, c'est pour cette expression: $categories = mysql_query("select * from news_categories WHERE rubrique=5");

si je remplace: WHERE rubrique=5 par
WHERE rubrique='"stripslashes($page['rubrique'])'"
, ça ne marche pas. mon code ne me renvoie rien alors que si je mets la valeur exacte ça marche.

Je ne comprends pas....

Re: pb sur une requete

Posté : 26 déc. 2011, 13:16
par Mazarini
"select * from news_categories WHERE rubrique=5"

à remplacer par

"select * from news_categories WHERE rubrique=".stripslashes($page['rubrique'])

Re: pb sur une requete

Posté : 26 déc. 2011, 13:27
par damien_55
J'ai pas compris :(
$categories = mysql_query("select * from news_categories WHERE rubrique=5");
ça je le remplace par quoi ?

Re: pb sur une requete

Posté : 26 déc. 2011, 13:51
par Mazarini
ben par
$categories = mysql_query("select * from news_categories WHERE rubrique=".stripslashes($page['rubrique']));

Re: pb sur une requete

Posté : 26 déc. 2011, 14:32
par xTG
Je dirai tant qu'à faire les choses bien :
$categories = mysql_query("select * from news_categories WHERE rubrique=".mysql_real_escape_string(stripslashes($page['rubrique'])));

Re: pb sur une requete

Posté : 26 déc. 2011, 14:37
par Mazarini
Pour une variable numérique qui vient de la base de données, c'est de la parano^^

Re: pb sur une requete

Posté : 26 déc. 2011, 15:37
par xTG
Bah je n'ai rien lu dans son code qui impliquait cela justement, et pis quand le code passe par des générations de développeurs on n'est jamais trop sûr de rien. :P

Re: pb sur une requete

Posté : 26 déc. 2011, 15:52
par damien_55
Alors je suis perdu... Aucun des deux codes ne marche...

ni
$categories = mysql_query("select * from news_categories WHERE rubrique=".mysql_real_escape_string(stripslashes($page['rubrique'])));
ni
$categories = mysql_query("select * from news_categories WHERE rubrique=".stripslashes($page['rubrique']));
 
Bizarre :(

Re: pb sur une requete

Posté : 26 déc. 2011, 16:25
par Mazarini
Quel est le message d'erreur ?
Que contient $page['rubrique'] ?

Re: pb sur une requete

Posté : 26 déc. 2011, 16:36
par damien_55
quand je fais un echo, ça me donne bien 5.

Mais j'ai pas le message d'erreur avec ce serveur. :(

Re: pb sur une requete

Posté : 26 déc. 2011, 16:43
par Mazarini
$sql = "select * from news_categories WHERE rubrique=".stripslashes($page['rubrique']));
$categories = mysql_query($sql);
Et tu pourras afficher le contenu de la requete pour vérifier.

Il faut ajouter après chaque mysql_query() :
if (mysql_errno()<> 0) echo mysql_error();
Il est bien de mettre error_reporting(E_ALL | E_STRICT) en début de script.

Re: pb sur une requete

Posté : 26 déc. 2011, 17:13
par damien_55
J'ai bien mis:
<?php

error_reporting(E_ALL | E_STRICT);
et
$sql = "select * from news_categories WHERE rubrique=".stripslashes($page['rubrique']));
$categories = mysql_query($sql);

if (mysql_error()<> 0) echo mysql_error();
Résultat: page blanche... :(