webForumDet fria alternativet

Hämta från tre tabeller

PHP

3 svar · 240 visningar · startad av Webslave

Medlem sedan maj 2002647 inlägg
Frågan#1

Kanske passar bäst i mysql... antagligen men jag var här inne så.

Jag har tre tabeller som jag behöver hämta info från:

forum_users
forum_posts
forum_topics

Jag försöker göra ett script som visar senast inlägget och av vem det gjordes av.

Varje post är länkad till ett topic med post_topic = topicID och så långt är det inga problem, problemet uppstår när jag ska hämta användarnamnet post_posterID, för om jag ska göra en vanlig join på dessa tre tabeller så måste jag ju länka ihop dem med något som finns i alla tabeller och i det här fallet så är det användarID:et som finns i alla tre. Men när jag länkar på det så visas varje topic som det användarID:et finns med i... och jag vill bara ha de fem senaste.

Detta är min sqlkod:

$sql = "SELECT forum_posts.*,forum_users.*,forum_topics.* FROM forum_posts INNER JOIN forum_topics ON forum_posts.post_posterID = forum_topics.topic_posterID INNER JOIN forum_users ON forum_users.userID = forum_topics.topic_posterID ORDER BY forum_posts.post_date DESC LIMIT 5";

Om ni förstod något över huvudtaget så skulle hjälp uppskattas... jag tror att min beskrivning av problemet är ganska rörig.

Medlem sedan dec. 200012 464 inlägg
#2

Det går inte att få till i Mysql med en fråga. Man behöver subselect vilket Mysql inte har.

Medlem sedan maj 2002647 inlägg
#3

Någon som har en idé på hur jag kan lösa det på annat sätt?

Medlem sedan maj 2002647 inlägg
#4

Jag lyckades!!!
Det är väldigt rörigt men det kanske hjälper någon annan.

<?PHP
$sql = "SELECT forum_posts.*,forum_topics.* FROM forum_posts INNER JOIN forum_topics ON forum_posts.post_topic = forum_topics.topicID ORDER BY forum_posts.post_date DESC LIMIT 5";
$result = mysql_db_query("$database","$sql");
while($row=mysql_fetch_array($result)){
  ?>
  <table width="100%" align="center" border="0" cellpadding="0" cellspacing="0" class="forum_border">
  <tr>
  <td OnMouseOver="this.style.background='#003300'" OnMouseOut="this.style.background='#333333'">
  <a href="forum/index.php?topic=<?=$row["topicID"]?>&post=<?=$row["postID"]?>" class="link" target="_blank"><?=$row["topic_title"]?></a>  -- <i><?=$row["post_date"]?></i> Posted by: <a href="forum/users.php?usersid=
  <?PHP
  $sql2 = "SELECT * FROM forum_users WHERE userID = '".$row["post_posterID"]."'";
  $result2 = mysql_db_query("$database","$sql2");
  $row2 = mysql_fetch_array($result2);
  echo $row2["userID"];
  ?>
  " class="link"><?=$row2["username"]?></a>
  </td>
  </tr>
  </table>
  <br>
  <?PHP
}
?>
259 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)