et une autre table qui sert seulement si le membre est enregistré et qui
affiche un dossier rouge ou jaune pour savoir si il y a des nouveaux
messages.
Cette table contient quatre champs (et s'appelle forum_consult):
pseudo,cat,consult,rubrique
si consult est a zéro le topic correspondant à la catégorie (cat) renverra
un dossier rouge, si il est à un un dossier jaune.
Voici le code pour afficher le tout sans les dossiers :
$requete=mysql_query("select
cat,posteur,sujet,clos,type,pseudo_dernier_post,date_dernier_post from forum
WHERE rubrique=\"$_GET[rubrique]\" AND reponse=0 order by type DESC,id_mess
DESC LIMIT $debut,$limite") or die(mysql_error());
$requetes++;
while($r=mysql_fetch_array($requete))
{
if($_SESSION[login]<>NULL)
{
//SI LE MEMBRE A CONSULTE CETTE CATEGORIE
$res=mysql_query("select SQL_SMALL_RESULT COUNT(consult) FROM
forum_consult WHERE cat=\"$cat\" and rubrique=\"$_GET[rubrique]\" and
pseudo=\"$_SESSION[login]\" LIMIT 1") or die(mysql_error());
$count=mysql_fetch_row($res);
$nbre=$count[0];
$requetes++;
}
Else
{
$nbre=0;
}
$consultation=0;
if($nbre<>0)
{
$consultation=1;
}
if($type==0)
{
if($consultation==0)
{
//AFFICHAGE D'UN DOSSIER ROUGE
}
Else
{
//AFFICHAGE D'UN DOSSIER JAUNE
}
}
}
Vous voyez que le bas blesse quand je fais la requête dans la boucle. J'ai
essayé de faire un select multiple comme ceci :
$requete=mysql_query("select
forum.cat,forum.posteur,forum.sujet,forum.clos,forum.type,forum.pseudo_derni
er_post,forum.date_dernier_post,forum_consult.cat as
cat_consult,forum_consult.consult from forum,forum_consult WHERE
forum_consult.rubrique=\"$_GET[rubrique]\" AND
forum_consult.pseudo=\"$_SESSION[login]\" AND forum_consult.cat=forum.cat
AND forum.rubrique=\"$_GET[rubrique]\" AND forum.reponse=0 order by
forum.type DESC,forum.id_mess DESC LIMIT $debut,$limite") or
die(mysql_error());
mais ça foire.
Comment faire pour que ma table forum ( RUBRIQUE | CAT | SUJET | MESSAGE |
REPONSE) soit en correspondance avec ma table consult (PSEUDO | RUBRIQUE |
CAT | CONSULT )
En clair si le membre est enregistré ($_SESSION[login]!=NULL) et que consult
est NULL ou est égal à 0, un dossier rouge s'affiche pour la catégorie en
cours, sinon (si le membre est enregistré et que consult est égal à 1 pour
la catégorie en cours, un dossier jaune s'affiche)
J'aimerais en fait que RUBRIQUE, CAT de fourm_consult se superposent à la
table forum en quelque sorte et qu'on ajoute les valeurs de consult et de
pseudo.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Bouchard
Anthony Rossetto - [vulgarisation-informatique.com] wrote:
Bonjour à tous et bonne année 2004 !
De meme.
Voilà je me suis fait un forum perso et j'aimerais bien l'optimiser.
Mauvaise technique. Il falait le faire optimiser :), et non pas le faire et l'optimiser ;o)
Voici le code pour afficher le tout sans les dossiers :
$requete=mysql_query("select cat,posteur,sujet,clos,type,pseudo_dernier_post,date_dernier_post from forum WHERE rubrique="$_GET[rubrique]" AND reponse=0 order by type DESC,id_mess DESC LIMIT $debut,$limite") or die(mysql_error());
Alors la, je t'en suplie, fait un truc propre avec une gestion d'erreur correct.
$sql = "SELECT...."; $requete = mysql_query($sql) or die(mysql_error().$sql);
if($_SESSION[login]<>NULL)
if($_SESSION['login']... // plus propre.
$res=mysql_query("select SQL_SMALL_RESULT COUNT(consult) FROM forum_consult WHERE cat="$cat" and rubrique="$_GET[rubrique]" and pseudo="$_SESSION[login]" LIMIT 1") or die(mysql_error());
Même chose. De plus fait attention à tes magic_quotes.
Vous voyez que le bas blesse quand je fais la requête dans la boucle. J'ai essayé de faire un select multiple comme ceci :
Le bas blesse ?
Bref, pour le reste c'est du sql et tu trouveras surement de l'aide sur les NG appropriés.
Au passage, A lire:
Les jointures sous mysql. http://www.mysql.com/doc/en/JOIN.html Optimisation SQL: http://phpinfo.net/articles/article_optimisation-mysql.html Un truc pour faire de belle requete SQL en gerant bien les magic_quotes: http://guillaume.apinc.org/2003/aout/12/3-gerer_correctement_magic-quotes
Bonne lecture.
-- Guillaume.
Anthony Rossetto - [vulgarisation-informatique.com] wrote:
Bonjour à tous et bonne année 2004 !
De meme.
Voilà je me suis fait un forum perso et j'aimerais bien l'optimiser.
Mauvaise technique. Il falait le faire optimiser :), et non pas le faire
et l'optimiser ;o)
Voici le code pour afficher le tout sans les dossiers :
$requete=mysql_query("select
cat,posteur,sujet,clos,type,pseudo_dernier_post,date_dernier_post from forum
WHERE rubrique="$_GET[rubrique]" AND reponse=0 order by type DESC,id_mess
DESC LIMIT $debut,$limite") or die(mysql_error());
Alors la, je t'en suplie, fait un truc propre avec une gestion d'erreur
correct.
$sql = "SELECT....";
$requete = mysql_query($sql) or die(mysql_error().$sql);
if($_SESSION[login]<>NULL)
if($_SESSION['login']...
// plus propre.
$res=mysql_query("select SQL_SMALL_RESULT COUNT(consult) FROM
forum_consult WHERE cat="$cat" and rubrique="$_GET[rubrique]" and
pseudo="$_SESSION[login]" LIMIT 1") or die(mysql_error());
Même chose. De plus fait attention à tes magic_quotes.
Vous voyez que le bas blesse quand je fais la requête dans la boucle. J'ai
essayé de faire un select multiple comme ceci :
Le bas blesse ?
Bref, pour le reste c'est du sql et tu trouveras surement de l'aide sur
les NG appropriés.
Au passage, A lire:
Les jointures sous mysql.
http://www.mysql.com/doc/en/JOIN.html
Optimisation SQL:
http://phpinfo.net/articles/article_optimisation-mysql.html
Un truc pour faire de belle requete SQL en gerant bien les magic_quotes:
http://guillaume.apinc.org/2003/aout/12/3-gerer_correctement_magic-quotes
Anthony Rossetto - [vulgarisation-informatique.com] wrote:
Bonjour à tous et bonne année 2004 !
De meme.
Voilà je me suis fait un forum perso et j'aimerais bien l'optimiser.
Mauvaise technique. Il falait le faire optimiser :), et non pas le faire et l'optimiser ;o)
Voici le code pour afficher le tout sans les dossiers :
$requete=mysql_query("select cat,posteur,sujet,clos,type,pseudo_dernier_post,date_dernier_post from forum WHERE rubrique="$_GET[rubrique]" AND reponse=0 order by type DESC,id_mess DESC LIMIT $debut,$limite") or die(mysql_error());
Alors la, je t'en suplie, fait un truc propre avec une gestion d'erreur correct.
$sql = "SELECT...."; $requete = mysql_query($sql) or die(mysql_error().$sql);
if($_SESSION[login]<>NULL)
if($_SESSION['login']... // plus propre.
$res=mysql_query("select SQL_SMALL_RESULT COUNT(consult) FROM forum_consult WHERE cat="$cat" and rubrique="$_GET[rubrique]" and pseudo="$_SESSION[login]" LIMIT 1") or die(mysql_error());
Même chose. De plus fait attention à tes magic_quotes.
Vous voyez que le bas blesse quand je fais la requête dans la boucle. J'ai essayé de faire un select multiple comme ceci :
Le bas blesse ?
Bref, pour le reste c'est du sql et tu trouveras surement de l'aide sur les NG appropriés.
Au passage, A lire:
Les jointures sous mysql. http://www.mysql.com/doc/en/JOIN.html Optimisation SQL: http://phpinfo.net/articles/article_optimisation-mysql.html Un truc pour faire de belle requete SQL en gerant bien les magic_quotes: http://guillaume.apinc.org/2003/aout/12/3-gerer_correctement_magic-quotes