Posted By

fox on 03/23/09


Tagged

mysql engine query tag categorie old


Versions (?)

Who likes this?

1 person have marked this snippet as a favorite

fox


otacamyqe


 / Published in: PHP
 

Vous devez impérativement posséder 3 tables dans votre base de donnée : La première aura au moins 3 colones appellées ici : ID, cat et date (de type mediumint, tinytext et datetime, ID étant primaire). La seconde aura 2 colones appellées ici : IDtag et tag (de type mediumint et tinytext IDtag étant primaire) La troisième aura 2 colones appellées ici : IDtj et IDaj toutes deux primaires et de type mediumint se référent aux valeurs de IDtag et ID.

  1. <?php
  2. $connexion = new PDO('mysql:host='.'localhost'.';dbname='.'database', 'username', 'password');
  3. $tag = (!empty($_GET['tag'])) ? "tag=".$connexion->quote(htmlentities($_GET['tag'], PDO::PARAM_STR)) : "1=1";
  4. $cat = (!empty($_GET['cat'])) ? "cat=".$connexion->quote(htmlentities($_GET['cat'], PDO::PARAM_STR)) : "2=2";
  5. $old = (!empty($_GET['old']) && $_GET['old']=="news" || $_GET['old']=="archives") ? htmlentities($_GET['old']) : "news";
  6. $archives = $connexion->prepare("SELECT * FROM tags t INNER JOIN tagsarts ta ON (t.IDtag = ta.IDtj) INNER JOIN articles a ON (ta.IDaj=a.ID)
  7. WHERE ".$tag." AND ".$cat." AND (NOW()-INTERVAL 1 MONTH)>a.date
  8. GROUP BY a.ID ORDER BY a.date DESC;");
  9. $news = $connexion->prepare("SELECT * FROM tags t INNER JOIN tagsarts ta ON (t.IDtag = ta.IDtj) INNER JOIN articles a ON (ta.IDaj=a.ID)
  10. WHERE ".$tag." AND ".$cat." AND (NOW()-INTERVAL 1 MONTH)<a.date
  11. GROUP BY a.ID ORDER BY a.date DESC;");
  12. if ($old=="news") {
  13. $news->execute();
  14. while ($result = $news->fetch(PDO::FETCH_OBJ)) {
  15. echo '<div id="artcomp'.$result->ID.'" class="artcomp"><br />';
  16. echo '<h1 class="titre" id="titre'.$result->ID.'">' . $result->titre . '</h1><br />';
  17. echo '<h5 class="date">' . $result->date . '</h5><br />';
  18. echo '<div class="article">' . $result->content . '</div><br />';
  19. echo '<h5 class="date">'.$result->tag.'</h5><br />';
  20. echo '</div>';
  21. }
  22. $news->closeCursor();
  23. } else {
  24. $archives->execute();
  25. while ($result = $archives->fetch(PDO::FETCH_OBJ)) {
  26. echo '<div id="artcomp'.$result->ID.'" class="artcomp"><br />';
  27. echo '<h1 class="titre" id="titre'.$result->ID.'">' . $result->titre . '</h1><br />';
  28. echo '<h5 class="date">' . $result->date . '</h5><br />';
  29. echo '<div class="article">' . $result->content . '</div><br />';
  30. echo '</div>';
  31. }
  32. $archives->closeCursor();
  33. }
  34. ?>

Report this snippet  

You need to login to post a comment.