PACMaN2002  | Salut,
 J'ai fait une requête qui retire des messages de mon phpbb, mais le problème, c'est qu'à la fin, j'ai mis "ORDER BY topic_id DESC" et le serveur de mon hébergeur payant était presque HS...
 Voici la requête en question :
  
  Code :
 - "SELECT phpbb_topics.forum_id, phpbb_topics.topic_id, phpbb_topics.topic_title, phpbb_topics.topic_time, phpbb_posts_text.post_text,phpbb_posts_text.bbcode_uid,phpbb_users.username FROM phpbb_topics, phpbb_posts,phpbb_posts_text, phpbb_users WHERE
 - phpbb_topics.article = 1
 - AND phpbb_topics.topic_poster = phpbb_users.user_id
 - AND phpbb_topics.topic_id = phpbb_posts.topic_id
 - AND phpbb_posts.post_id = phpbb_posts_text.post_id
 - AND phpbb_users.user_id = phpbb_topics.topic_poster
 - AND phpbb_topics.forum_id = '1'
 - OR phpbb_topics.forum_id = '2'
 - OR phpbb_topics.forum_id = '3'
 - OR phpbb_topics.forum_id = '21'
 - ORDER BY phpbb_topics.topic_id DESC
 - LIMIT 0,15"
 
  |  
 
   J'ai vu la fonction array multisort() qui à ce qu'il parait, permet de faire comme order by.
   Alors, voici ce que je pensais faire :
  Code :
 - $requete = "SELECT phpbb_topics.forum_id, phpbb_topics.topic_id, phpbb_topics.topic_title, phpbb_topics.topic_time, phpbb_posts_text.post_text, phpbb_posts_text.bbcode_uid, phpbb_users.username FROM phpbb_topics,phpbb_posts,phpbb_posts_text,phpbb_users WHERE
 - phpbb_topics.article = 1
 - AND phpbb_topics.topic_poster = phpbb_users.user_id
 - AND phpbb_topics.topic_id = phpbb_posts.topic_id
 - AND phpbb_posts.post_id = phpbb_posts_text.post_id
 - AND phpbb_users.user_id = phpbb_topics.topic_poster
 - AND phpbb_topics.forum_id = '1'
 - OR phpbb_topics.forum_id = '2'
 - OR phpbb_topics.forum_id = '3'
 - OR phpbb_topics.forum_id = '21'
 - DESC
 - LIMIT 0,15";
 
  |  
 
   Après je fais :
  
  Code :
 - $row = mysql_fetch_array($requete);
 - foreach ($arr as $key => $row) {
 -    $topic_id[$key] = $row["topic_id"];
 - }
 - array_multisort($topic_id, SORT_DESC, $arr);
 
  |  
 
   Mais après je ne sais pas trop comment faire pour pouvoir afficher les 15 enregistrements que j'ai demandé et qui ont été classés.
   Par exemple, ca pourrait etre ca :
  
  Code :
 - <?php
 - // on ouvre une connexion sql
 - $requete = "SELECT phpbb_topics.forum_id, phpbb_topics.topic_id, phpbb_topics.topic_title, phpbb_topics.topic_time, phpbb_posts_text.post_text, phpbb_posts_text.bbcode_uid, phpbb_users.username FROM phpbb_topics,phpbb_posts,phpbb_posts_text,phpbb_users WHERE
 - phpbb_topics.article = 1
 - AND phpbb_topics.topic_poster = phpbb_users.user_id
 - AND phpbb_topics.topic_id = phpbb_posts.topic_id
 - AND phpbb_posts.post_id = phpbb_posts_text.post_id
 - AND phpbb_users.user_id = phpbb_topics.topic_poster
 - AND phpbb_topics.forum_id = '1'
 - OR phpbb_topics.forum_id = '2'
 - OR phpbb_topics.forum_id = '3'
 - OR phpbb_topics.forum_id = '21'
 - DESC
 - LIMIT 0,15";
 - $row = mysql_fetch_array($requete);
 - foreach ($arr as $key => $row) {
 -    $topic_id[$key] = $row["topic_id"];
 - }
 - WHILE (array_multisort($topic_id, SORT_DESC, $arr))
 - {
 - // la on affiche les enregistrements
 - }
 - ?>
 
  |  
 
   Alors, je sais pas si ce code est juste, d'ailleurs ca m'étonnerait... Donc si vous avez des solutions, je suis preneur!
   Sinon, à votre avis, c'est order by ou desc qui fait bloquer ?
   @+ et merci d'avance!    Message édité par PACMaN2002 le 06-06-2004 à 13:24:01
  |