---
title: "Flera svar på samma inlägg"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/183561-flera-svar-på-samma-inlägg"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "streetrobban"
published: "2010-05-21T09:01:59.000Z"
updated: "2010-05-21T12:36:50.000Z"
replies: 2
views: 399
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/183561-flera-svar-på-samma-inlägg"
---

# Flera svar på samma inlägg

## #1 — streetrobban, 2010-05-21T09:01Z

Tjena!

Jag håller på med en gästbok där man kan svara på inläggen som skrivs. Varje inlägg ska kunna ha flera svar.

Koden nedan funkar bra så länge ett inlägg inte har mer än ett svar. Får ett inlägg fler svar så skrivs inlägget ut så många gånger som det finns svar, tillsammans med svaret. Jag vill att inlägget ska skrivas ut en gång, och svaren under inlägget.

Tack!

```php
		<?php
		// Öppna databasen
		require 'includes/db.php';

		// Räkna alla inlägg
		$get = mysql_query("SELECT ID
		FROM Guestbook");
		$CountedMessages = mysql_num_rows($get);

		// Kontrollera om gästboken är tom
		if ($CountedMessages == '0')
		{
			echo "Det finns inga inlägg<br>";
		}
		else
		{
			// Hämta inläggen
			$get = mysql_query("SELECT TuGu.ID AS GbokID, TuGu.Time, TuGu.Date, TuGu.Name, TuGu.Mail, TuGu.Message, TuMe.ID AS ThisMemberID, TuMe.Firstname, TuMe.Lastname, TuGa.ID AS AnswerID, TuGa.Time AS AnswerTime, TuGa.Date AS AnswerDate, TuGa.MessageID, TuGa.MemberID, TuGa.Answer
			FROM GuestbookAnswers TuGa
			RIGHT JOIN Guestbook AS TuGu ON TuGu.ID = TuGa.MessageID
			LEFT JOIN Members AS TuMe ON TuMe.ID = TuGa.MemberID
			ORDER BY TuGu.Date DESC, TuGu.Time DESC");
			while($row = mysql_fetch_array($get)) 
			{
				// Hämta från Guestbook
				$GbokID = $row['GbokID'];
				$Time = $row['Time'];
				$Date = $row['Date'];
				$Name = $row['Name'];
				$Mail = $row['Mail'];
				$Message = $row['Message'];
				
				// Hämta från GuestbookAnswers
				$AnswerID = $row['AnswerID'];
				$AnswerTime = $row['AnswerTime'];
				$AnswerDate = $row['AnswerDate'];
				$MessageID = $row['MessageID'];
				$MemberID = $row['MemberID'];
				$Answer = $row['Answer'];
				
				// Hämta från Members
				$ThisMemberID = $row['ThisMemberID'];
				$Firstname = $row['Firstname'];
				$Lastname = $row['Lastname'];
				
				// Kontrollera om det finns något svar
				if ($Answer <> '')
				{
					echo "<b>$Date $Time | Av $Name</b><br>";
					echo "$Message<br>";
					echo "<span class=\"answer\"><b>Svar av <a href=\"spec.php?ViewMember=ID=$ThisMemberID\" title=\" Visa info om $Firstname $Lastname \">$Firstname $Lastname</a></b> $Answer</span><br><br>";
				}
				else
				{
					echo "<b>$Date $Time | Av $Name</b><br>";
					echo "$Message<br><br>";
				}
				
			}
		}

		// Stäng databasen
		mysql_close($open);
		?>
```

Permalänk: https://www.webforum.nu/p/183561

## #2 — @nders, 2010-05-21T09:03Z

Utskrifterna får du lösa med PHP - tråden flyttas därmed från SQL.

Permalänk: https://www.webforum.nu/p/2235287

## #3 — streetrobban, 2010-05-21T12:36Z

Hej,

Jag löste problemet själv. Jag vet dock inte om det är den bästa lösningen. Men så här ser slutkoden ut.

```php
		<?php
		// Öppna databasen
		require 'includes/db.php';

		// Hämta inläggen
		$get = mysql_query("SELECT ID, Time, Date, Name, Message
		FROM Guestbook
		ORDER BY Date DESC, Time DESC");
		while($row = mysql_fetch_array($get)) 
		{
			$ID = $row['ID'];
			$Time = $row['Time'];
			$Date = $row['Date'];
			$Name = $row['Name'];
			$Message = $row['Message'];

			// Räkna svaren
			$get2 = mysql_query("SELECT ID
			FROM GuestbookAnswers
			WHERE MessageID = $ID");
			$CountedAnswers = mysql_num_rows($get2);

			// Kontrollera om det finns några svar
			if ($CountedAnswers == '0')
			{
				echo "<b>$Date $Time | Av $Name</b><br>";
				echo "$Message<br><br>";
			}
			else
			{
				echo "<b>$Date $Time | Av $Name</b><br>";
				echo "$Message<br>";
				
				// Hämta svaren
				$get3 = mysql_query("SELECT TuGa.MemberID, TuGa.Answer, TuMe.ID, TuMe.Firstname, TuMe.Lastname
				FROM GuestbookAnswers TuGa
				INNER JOIN Members AS TuMe ON TuMe.ID = TuGa.MemberID
				ORDER BY TuGa.Date DESC, TuGa.Time DESC");
				while($row = mysql_fetch_array($get3)) 
				{
					// Hämta från GuestbookAnswers
					$MemberID = $row['MemberID'];
					$Answer = $row['Answer'];
					
					// Hämta från Members
					$ID = $row['ID'];
					$Firstname = $row['Firstname'];
					$Lastname = $row['Lastname'];
					
					echo "<span class=\"answer\"><b>Svar av <a href=\"spec.php?page=ViewMember?ID=$ID\" title=\" Visa info om $Firstname $Lastname \">$Firstname $Lastname</a></b> $Answer</span><br>";
				}
				echo "<br>";
			}
		}

		// Stäng databasen
		mysql_close($open);
		?>
```

Permalänk: https://www.webforum.nu/p/2235298

---

Tråden på webben: https://www.webforum.nu/amne/php/183561-flera-svar-på-samma-inlägg
