webForumDet fria alternativet

Plocka ut grupper och undergrupper

PHP

4 svar · 503 visningar · startad av s7eam

Medlem sedan mars 20066 inlägg
Frågan#1

Jag håller på och skapar ett forum men jag vet inte riktigt hur jag ska få till så att man plockar Gruppens namn samt kategorier i gruppen på samma sida.

Jag vill få till det på det här viset alltså:
Forum grupp
forum namn 1
forum namn 2
etc...
Forum grupp 2
forum namn 1
forum namn 2
etc...

Mina tabeller ser ut på följande sätt:

forum_group
groupID
groupTitle
forum
forumID
groupID
forumTitle
forum Desc

Kör man while funktionen och gör en join så plockar man ju ut allt och "groupTitle" upprepas på varje rad te.ex.

Music
pop
Music
rock
Sport
icehockey
Sport
football

etc...

Hur skapar man så att scriptet bara skriver ut guppens namn EN gång och sedan under det skriver ut forumnamnen?

mitt script ser ut såhär:

$sql = "SELECT * FROM forum, forum_group WHERE forum.groupID = forum_group.groupID";
$que = mysqsl_query( $sql );

while ( $row = mysql_fetch_array( $que ) ) {
echo "Group:" . $row['groupTitle'] . "<br />";
echo "Forum:" . $row['forumTitle'] . "<br />";

}

Där tar det stop dock. Jag förstår ju att jag inte kan skapa scriptet såhär men hur jag vrider och tänker så kommer jag inte på logiken för att göra enligt det tänka sättet.

Någon php guru här?

Medlem sedan juni 20006 031 inlägg
#2

Flyttas från PHP

Medlem sedan juni 200032 967 inlägg
#3

Jag brukar sätta en kontrollvariabel i loopen och kolla "om inte gruppnamnet är samma som förra gruppnamnet, skriv ut det och sätt om kontrollvariabeln".

- - - - -

Eftersom det är presentationen som efterfrågas så flyttas faktiskt tråden tillbaka från SQL-forumet.

Medlem sedan juni 20006 031 inlägg
#4

Misstag av mig, läste visst lite dåligt.

while ( $row = mysql_fetch_array( $que ) ) {
     if($lastGroupTitle == $row['groupTitle']) {
          echo "Forum:" . $row['forumTitle'] . "<br />";
     } else {
          $lastGroupTitle = $row['groupTitle'];
          echo "Group:" . $row['groupTitle'] . "<br />";
          echo "Forum:" . $row['forumTitle'] . "<br />";
     }
}

Någonting sånt borde väl funka.

Medlem sedan mars 20066 inlägg
#5

Schysst, fast detta script genererar en notice.

Lägger man till en $lastGroupTitle = NULL; rad före while loopen t.ex. så får man ordning på det hela.

Tack pedda och tack @anders.

266 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)