8791 sujets

Développement web côté serveur, CMS

Bonjour,

je suis en train de tester une requête assez particulière, j'aimerais vos conseils pour la faire marcher car celà ne fonctionne pas avec le code ci-dessous... Smiley biggol

$requete = "SELECT * FROM in_articles ORDER BY articles_datetime DESC";
$result = mysql_query($requete);

while ($row = mysql_fetch_array ($result) )
{

[b]if ($row['articles_rubrique'] = "Rubrique 1") {
echo 'mes articles n°1 dans un style particulier' ;
}
else {
echo 'mes autres articles dans un style classique' ;
}[/b]


}


En fait, j'ai une base de donnée avec une table qui contient tous mes articles. Mes articles sont classés en 2 rubriques : "Rubrique 1" ou "Autre rubrique" (en réalité autre rubrique est composé de plusieurs autre rubriques mais c'est pour indiquer le "else" de ma fonction).

J'aimerais faire une sortie / un echo de tous mes articles, mais ajustez le contenu de l'affichage en fonction de la rubrique, et donc gérer différentes propriétés de style dans mon "echo" qui serait différente si c'est un article de la "Rubrique 1" qui doit être affiché, contrairement aux autres rubriques ou on garde le style classique.

[u]Tout celà en les affichant par date de publication[/u], et non d'abord la "Rubrique 1" puis ensuite "Autre rubrique" ce qui reviendrait à faire 2 requête évidement... D'ailleurs je réalise qu'avec ma requête, même si elle marchait, je ne suis pas certain qu'elle tiendrait compte de cette remarque ?!


Voilà mon dilemme du jour ! J'ai tenté un "if / else" dans le while, le code ci-dessous, mais apparement ça ne marche pas de cette façon. Ca affiche tous mes articles dans le style n°1, le esle est zappé !

Est-ce que quelqu'un a une idée pour résoudre ce problème ou me conseiller des pistes ?? Smiley murf


Merci, cordialement,
Modifié par termi (21 Aug 2008 - 02:25)
Salut termi, Smiley cligne

tu fais une confusion entre l'opérateur d'assignation = comme dans $var = 33; qui va donner la valeur 33 à $var et l'opérateur de comparaison == comme dans if ($row['articles_rubrique'] == "Rubrique 1").

Et pour le plaisir il existe également l'opérateur === qui, en plus de vérifier l'égalité des valeurs, vérifie également l'égalité des types.

Pour une petite révision, voir la doc.

A+


Edit: d'ailleurs tu n'es pas très attentif puisque Thomas te l'as déjà dit très récemment ! Smiley langue

Edit 2: en passant il faudrait peut-être vérifier s'il ne manque pas une notion (= un champ) dans ta table car le test sur une valeur est parfois un signe. En tout cas si un jour tu commences à faire un test du genre SI valeur1 ou valeur2 ALORS... il faudra vraiment y réfléchir.
Modifié par Heyoan (20 Aug 2008 - 06:32)
Merci ! Effectivement, je pensais avoir compris cette histoire de ==, mais alors ça ne doit pas être le cas...

En fait si, j'ai bien compris la nation de valeur identique et de comparaison, mais il me semblait que dans ce cas là c'était bien une valeur identique à laquelle on faisait appel ! C'est assez drole que je retombe sur ce problème de == après avoir poster sur le même sujet effectivement.

Ca fait pourtant plusieurs fois que je regarde la doc à ce sujet, sans mentir ! Est-ce qu'il existe des combine, des astuces pour identifier de quel opérateur on a besoin dans un cas précis ?? Car c'est une notion qui me pose problème cette identification d'opérateur...
Modifié par termi (20 Aug 2008 - 19:50)
termi a écrit :

Est-ce qu'il existe des combine, des astuces pour identifier de quel opérateur on a besoin dans un cas précis ?? Car c'est une notion qui me pose problème cette identification d'opérateur...
Et bien le mieux est de lire la doc dont je t'ai donné le lien plus haut... et sinon il faut juste se rappeler que = est un faux ami et qu'il veut dire "... a désormais la valeur de ..." Smiley cligne
Heyoan a écrit :
Dis-moi pas qu'c'est pas vrai ! Tu as pensé au résolu ! Smiley biggol Smiley ravi

Smiley lol comme quoi tout arrive lol !