Les archives de FluxBB.fr
Vous n'êtes pas identifié(e).
Pages : 1
Bonjour à tous,
J'ai fait une petite recherche rapide, mais j'ai pas trouvé quelque chose qui me convienne. Je coince seulement dans ma requete sql. Le reste est presque prêt.
// Générer la requete OR ( implode OR ID = X)
$where_sql = 'WHERE t.poster = '.$author.(!empty($forums_id) ? ' AND t.forum_id='.implode(' OR t.forum_id='\'\'', $forums_id) : '')
// Select les topics + explode requete
$sql = 'SELECT t.id, t.poster, t.subject, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question FROM '.$db->prefix.'topics AS t '.$where_sql ;
$result = $db->query($sql) or error('Unable to fetch topic list', __FILE__, __LINE__, $db->error());
// If there are topics in this forum (forcément, le code repris dans wiewforum).
if ($db->num_rows($result))
{$author est une variable qui existe, a déjà été vérifié et fonctionne pour le compte des posts.
$forums_id est un array qui contient les ids des différents forums dans lesquels je veux récupérer du contenu.
Comme vous pouvez le constater, ce que j'essaie de faire.. c'est
SELECT t.id, ... t.question FROM topics where t.poster = 'Illusion' AND (t.forum_id = $forums_id[0] OR forum_id = $forums_id[1] OR ... =$forum_id[8])
Si quelqu'un a une idée de comment arranger cette requete... Je suis pas du tout doué en sql.
Merci d'avance.
Dernière modification par Illusion (14-09-2009 10:53:38)
*-- Illusion --*
PoesieLand, la poésie sommeille en vous !
Hors ligne
Quand tu as ce genre de problème, une bonne solution pour trouver les erreurs est d'afficher à l'écran la requête qui a été générée, en faisant dans ton cas un petit
echo $sql;Essaie avec ça
$where_sql = 'WHERE t.poster = '.$author.(!empty($forums_id) ? ' AND t.forum_id in ('.implode($forums_id).')' : '')Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Voici ce que donne le [c]echo $sql;[/c] :
SELECT t.id, t.poster, t.subject, t.posted, t.last_post, t.last_post_id, t.last_poster, t.num_views, t.num_replies, t.closed, t.sticky, t.moved_to, t.question FROM topics AS t WHERE t.poster = 'Illusion' AND t.forum_id in (6793139464851)Au niveau résultat, évidemment, ca ne donne rien.
Je vais chercher un peu et je reviens.
Edit : ca a été rapide
.
J'ai juste rajouté dans le implode un [c]',',[/c], ce qui donne :
$where_sql = 'WHERE t.poster = \''.$author.'\''.(!empty($forums_id) ? ' AND t.forum_id in ('.implode(', ',$forums_id).')' : '') ;Merci beaucoup pour l'aide.
Il me reste à résoudre mon problème de pagination et c'est ok
.
Encore merci pour le coup de main, fanf73
EDIT2 : Je peux pas modifier le titre. Vous pouvez mettre [resolu] .
Dernière modification par Illusion (14-09-2009 16:42:20)
*-- Illusion --*
PoesieLand, la poésie sommeille en vous !
Hors ligne
Oups, j'avais en effet oublié un paramètre 
Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.
Hors ligne
Pages : 1