detta med join kommer jag nog alldrig att lära mig...
Försöker hämta info från 3 olika tabeller...
$sql = "SELECT
categories.cat_id,
categories.cat_name,
categories.cat_description,
categories.cat_group,
categories.cat_order,
COUNT(topics.topic_id) AS topics,
topics.topic_by,
users.username
FROM
categories
JOIN
topics
ON
topics.topic_id = categories.cat_id
LEFT JOIN
users
ON
topics.topic_by = users.username
GROUP BY
categories.cat_name, categories.cat_description, categories.cat_id, categories.cat_order";
när någon medlem lägger till en tråd så sparas dens id i topics.topic_by
men isället för att få en 2 där, så skulle jag vilja att när den har hämtat ut 2 så blir det users_username.....
är ett konstigt villkor då topic_by är en numerisk kolumn och username är character. Förmodligen så vill du jämföra med motsvarande id-kolumn i users.
I din fråga vill du räkna antal inlägg i olika kategorier, då förstår jag inte vad syftet är med att hämta username då du får en post per kategori.
T.ex. säg att det finns tre inlägg i en kategori, skrivna av tre olika användare. Vilket username vill du ha? Alla? Ett slumpmässigt? Den som har skrivit flest inlägg i den kategorin?
lyckats få dom precis som jag vill ha dom, MEN !!!!
Under kategorierna under varje huvudrubrik ligger inte innom samma ram.
+ att det ska vara ett mellanrum från den sista under kategori till nästa huvudrubrik.
Där har jag problemet nu...
Hoppas verkligen någon kan hjälpa mig med detta....
koden är :
<?php
$sql = "SELECT
cat_id AS id,
cat_name AS name,
cat_description AS description,
cat_order,
cat_group AS groupname
FROM
categories
ORDER BY
cat_id, cat_order";
$result = mysql_query($sql)or die(mysql_error());
$headline = '';
while($row = mysql_fetch_assoc($result))
{
if ($headline != $row['groupname'])
{
echo '<div class="home-header"><div class="heading ico-groups">' . $row['groupname'] . '
</div></div>';
}
echo '<table border="0" cellspacing="0" cellpadding="3" class="tableCurves" width="100%">
<tr>
<td>';
echo '<table border="0" cellspacing="1" cellpadding="4" width="100%">
<tr>
<td valign="top" align="center" width="3%"><img src="img/topic_icon_on.png" width="22" height="22" alt="" /></td>';
echo '<td valign="top" width="53%"><b><a href="category.php?id=' . $row['id'] . '">' . $row['name'] . '</a></b><br />' . $row['description'] . '</td>';
//fetch last topic for each cat
$topicsql = "SELECT
u.username AS username,
u.id AS userid,
t.topic_id AS topic_id,
t.topic_date AS topic_date,
t.topic_cat AS topic_cat
FROM
(SELECT
topic_by AS userid,
topic_id AS topic_id,
topic_date AS topic_date,
topic_cat AS topic_cat
FROM
topics
WHERE
topic_cat = " . $row['id'] . "
ORDER BY
topic_id, topic_date DESC
LIMIT 1) AS t
JOIN
users AS u
ON
u.id = t.userid";
$topicsresult = mysql_query($topicsql)or die(mysql_error());
if(!$topicsresult)
{
echo 'Last topic could not be displayed.';
}
else
{
if(mysql_num_rows($topicsresult) == 0)
{
echo '<td valign="top" align="center" width="8%"></td>';
echo '<td valign="top" align="center" width="8%">-</td>
<td valign="top" align="center" width="19%">';
echo 'Inga ämnen';
}
else
{
while($topicrow = mysql_fetch_assoc($topicsresult))
{
echo '<td valign="top" align="center" width="8%">'
. mysql_result(mysql_query("SELECT COUNT(*) FROM topics WHERE topic_cat=" . $row['id']), 0, 0)
. '</td>';
echo '<td valign="top" align="center" width="8%">-</td>
<td valign="top" align="center" width="19%">' . $topicrow['username'] . '<br />';
echo '<a href="topic.php?id=' . $topicrow['topic_id'] . '"> ' . date('j F, Y, g:i', strtotime($topicrow['topic_date']));
echo '</a></td>';
echo '</tr>';
}
}
}
echo '<tr>
<td class="trow1" valign="top" align="center" colspan="5"><div style="border-bottom:1px dotted #94B1DF; margin-bottom:5px; padding:0px 0px 5px 0px; clear:both;"></div></td>
</tr>
</table>
</td></tr></table>';
}
?>
264 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2