---
title: "Problem med svarsinlägg till forum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "addeweb"
published: "2004-06-06T17:29:14.000Z"
updated: "2004-07-06T22:42:10.000Z"
replies: 56
views: 1108
page: 1
pages: 3
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/105132-problem-med-svarsinlägg-till-forum"
---

# Problem med svarsinlägg till forum

_Sida 1 av 3._

## #1 — addeweb, 2004-06-06T17:29Z

Jag har gjort iordning ett forum för en sajt. Problemet med 
forumet är att på svarsidan kan jag inte få några svarsinlägg alls 
under startinlägget. Allt som syns av dessa svar är antalet som 
ändras i listan på forumets första sida när man har svarat på 
startinlägget.  

Längre ner i koden under "Hämta alla svar till aktuell inlägg" 
finns delen som skulle ha hämtat alla svaren. 

Någonting som jag har missat?

**svar.php** 

```php
// Webforum mySQL 1.1
// Copyright © 2001 Mathias Niklasson
// [url]http://www.niklasson.net/[/url]
#########################
<html>
<head>
<title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<link rel="stylesheet" type="text/css" href="../style/style_main.css">
	<script language="JavaScript" src="../scripts/popup.js"></script>
	<script language="JavaScript" src="../scripts/forumkod.js"></script>

<head>
<body>
<?php
if (empty($id))
{
	header ("Location: index.php");
}

 if (isset($svar))

// --- Nedanstående kod som kan tas bort ---
{

$msquery = "SELECT * FROM forum WHERE id = '$id'";
$result = mssql_query($msquery,$connection);

	while ($n = mssql_fetch_array($result))
	{
	$id = $n["id"];
	$namn = $n["namn"];
	$epost = $n["epost"];
	$amne = $n["amne"];
	$text = $n["text"];
	$ref_id = $n["ref_id"];
	$datum = $n["datum"];
	$dat = date('j/n H:i', strtotime($datum));
	}
?>

	<p><?=$rubrik?></p>

<table width="<?=$tbwidth?>" align="center" border="0" cellspacing="0" cellpadding="3">
<tr>
   <td bgcolor="<?=$tdtopbgfarg?>" width="50%"><b><?=$amne?></b></td>
   <?php
// Kolla status
if($status >= 1 && isset($_SESSION['Loginname'])){ ?>
   	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">[ <a href="tabort.php?id=<?=$id?>"><u>Ta bort</u></a> ]</td>
   <?php } else { ?>
	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">&nbsp;</td>
   <?php } ?>

   <td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right"><?=$dat?></td>
</tr>
<tr>.$newbeskr = wordwrap($row[2], 15, "\n", 1).
   <td colspan="3" bgcolor="<?=$tdbgfarg?>"><?=$newtext = wordwrap($text, 50, "\n", 1)?></td>
</tr>
<tr>
   <td colspan="3" bgcolor="<?=$tdbgfarg?>" height="10">&nbsp;</td>
</tr>

<?php
if($epost == " ")
//if (empty($epost)) // Det funkar inte med empty
{
?>
<tr>
   <td colspan="2" bgcolor="<?=$tdbgfarg?>" width="70%">Skrivet av: <b><?=$namn?></b></td>
   <td bgcolor="<?=$tdbgfarg?>" width="30%">&nbsp;</td>
</tr>
<?php
} else { ?>
<tr>
   <td colspan="2" bgcolor="<?=$tdbgfarg?>" width="70%">Skrivet av: <b><?=$namn?></b> <a href="mailto:<?=$epost?>"><u>E-post</u></a></td>
   <td bgcolor="<?=$tdbgfarg?>" width="30%">&nbsp;</td>
</tr>

<?php
}
?>
<tr>
   <td colspan="3"><hr size="1" NOSHADOW /></td>
</tr>
<tr>
   <td colspan="3"><a href="JavaScript:history.go(-1);">&#171 Tillbaka</a></td>
</tr>
</table>
<?
exit;
} 

// --- Ovanstående kod som kan tas bort och inte används. ---

$origid=$id;

// ------ Första inlägget överst på sidan ---------

$msquery = "SELECT * FROM forum WHERE id = '$id'";
$result = mssql_query($msquery);
	while ($r = mssql_fetch_array($result))
	{
	$id = $r["id"];
	$namn = $r["namn"];
	$epost = $r["epost"];
	$amne = $r["amne"];
	$text = $r["text"];
	$ref_id = $r["ref_id"];
	$datum = $r["datum"];
	$dat = date('j/n H:i', strtotime($datum));
	}

?>
	<h3>Forum</h3>

<table width="<?=$tbwidth?>" align="center" border="0" cellspacing="0" cellpadding="4" style="border: solid 2px #FFCCFF; margin-bottom: 10px">
<tr>
   <td bgcolor="<?=$tdtopbgfarg?>" width="50%"><b><?=$amne?></b></td>
<?php
// Kolla status
if($status >= 1 && isset($_SESSION['Loginname'])){ ?>
   	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">[ <a href="tabort.php?id=<?=$id?>"><u>Ta bort</u></a> ]</td>
   <?php } else { ?>
	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">&nbsp;</td>
   <?php } ?>

	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right"><?=$dat?></td>
</tr>
<tr>
   <td colspan="3" bgcolor="<?=$tdbgfarg?>"><?=$newtext = wordwrap($text, 50, "\n", 1)?></td>
</tr>
<tr>
   <td colspan="3" bgcolor="<?=$tdbgfarg?>" height="10">&nbsp;</td>
</tr>
<?
if($epost == " ")
//if (empty($epost))
{
?>
<tr>
   <td colspan="2" bgcolor="<?=$tdbgfarg?>" width="70%">Skrivet av: <b><?=$namn?></b></td>
   <td bgcolor="<?=$tdbgfarg?>" width="30%">&nbsp;</td>
</tr>
<?
}
else
{
?>
<tr>
   <td colspan="2" bgcolor="<?=$tdbgfarg?>">Skrivet av: <b><?=$namn?></b> <a href="mailto:<?=$epost?>"><u>E-post</u></a></td>
   <td bgcolor="<?=$tdbgfarg?>" align="right">&nbsp;</td>
</tr><?php } ?>

 </table>

<?php

// ------ Svarsinlägg ----------
$origamne = $amne;

//------ Om det inte finns svarsinlägg ----------
//$rows = mssql_num_rows(mssql_query("SELECT * FROM forum WHERE ref_id = '".$_GET['id']."'"));
if (!$rows)
{

echo "<p>Det finns inga svar på detta inlägg ännu.</i></p>\n";
echo "<a href=\"index.php\">&#171 Tillbaka</a>";

mssql_close();

}else{
// ------- Hämta alla svar till aktuell inlägg ----------

$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result2 = mssql_query($msquery,$connection);
	while ($s = mssql_fetch_array($result2))
	{
	$id = $s["id"];
	$namn = $s["namn"];
	$epost = $s["epost"];
	$amne = $s["amne"];
	$text = $s["text"];
	$ref_id = $s["ref_id"];
	$datum = $s["datum"];
	$dat = date('j/n H:i', strtotime($datum));
}
?>
<table width="<?=$tbwidth?>" align="center" border="0" cellspacing="0" cellpadding="4" style="border: solid 2px #FFCCFF; margin-bottom: 10px">
<tr>
   <td bgcolor="<?=$tdtopbgfarg?>" width="50%"><b><?=$amne?></b></td>
<?php
// Kolla status
if($status >= 1 && isset($_SESSION['Loginname'])){ ?>
   	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">[ <a href="tabort.php?id=<?=$id?>"><u>Ta bort</u></a> ]</td>
   <?php } else { ?>
	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">&nbsp;</td>
   <?php } ?>

	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right"><?=$dat?></td>
</tr>
<tr>
   <td colspan="3" bgcolor="<?=$tdbgfarg?>"><?=$newtext = wordwrap($text, 50, "\n", 1)?></td>
</tr>
<tr>
   <td colspan="3" bgcolor="<?=$tdbgfarg?>" height="10">&nbsp;</td>
</tr>
<?
if($epost == " ")
//if (empty($epost))
{
	?>
	<tr>
   	<td colspan="2" bgcolor="<?=$tdbgfarg?>" width="70%">Skrivet av: <b><?=$namn?></b></td>
   	<td bgcolor="<?=$tdbgfarg?>" width="30%">&nbsp;</td>
	</tr>
<?} else {?>
<tr>
   <td colspan="2" bgcolor="<?=$tdbgfarg?>">Skrivet av: <b><?=$namn?></b> <a href="mailto:<?=$epost?>"><u>E-post</u></a></td>
   <td bgcolor="<?=$tdbgfarg?>" align="right">&nbsp;</td>
</tr>
<?php
	
}
mssql_close();

echo "</table>\n\n";

// Slut för hämtning av svar till aktuell inlägg
?>
<p><a href="index.php">&#171 Tillbaka</a></p>

<?php }

if ($svar == 0)
{
?>

<h5 align="center">Skriv ett svar.</h5>
      <form name="form1" action="skicka.php" method="post">
      <input type="hidden" name="ref_id" value="<?=$origid?>">
	<input type="hidden" name="id" value="<?=$origid?>">
	<table cellpadding="2" cellspacing="0" border="0" align="center">
	<tr><td >Namn:<br />
        <input type="text" size="25" maxlength="20" name="namn" class="input"/>
      	</td><td>E-post:<br>
        <input type="text" size="25" maxlength="60" name="epost" class="input" />
	</td></tr>
	<tr><td colspan="2">Ämne:<br />
        <input type="text" size="25" maxlength="30" class="input" value="SVAR: <?=$origamne?>" size="35" disabled class="input" />
        <input type="hidden" name="amne" value="SVAR: <?=$origamne?>" class="input" />
        </td></tr>
	<tr><td colspan="2">Meddelande:<br />
        <textarea name="text" cols="55" rows="10" class="input"></textarea></td></tr>
	<tr><td colspan="2" align="center" height="30">
	<input type="button" value="B" title="Fet text" class="button"style="font-weight:bold;" onclick="insert('[b]Fet text[/b]')" />&nbsp;
	<input type="button" value="U" title="Understruken text" class="button" style="font-weight:bold; text-decoration: underline;" onclick="insert('[u]Understruken text[/u]')" />&nbsp;
	<input type="button" value="K" title="Kursiv text" class="button" style="font-weight:bold; font-style: italic;" onclick="insert('[i]Kursiv text[/i]')" />&nbsp;
 	<input type="button" value="URL" title="Länkadress" class="button" style="font-weight:bold;" onclick="insert('[url][u]Länkadress[/u][/url]')" />&nbsp;
	<input type="reset" value="Rensa" class="button" />&nbsp;
	<input type="submit" value="Skicka" class="button" />
	</td></tr>
	<tr><td colspan="2" align="center">Använd gärna <a href="#" onClick="popupwindow('forumkod.php',300,250); return false;"><u>forumkod</u></a>.</td></tr>
	</table>
	</form>

<?php }
  }
 ?>
</body>
</html>
```

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

## #2 — addeweb, 2004-06-06T19:18Z

Finns det någon här som kan hjälpa mig?

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

## #3 — addeweb, 2004-06-06T19:55Z

Måste tillägga att jag har haft det här problemet liggande länge och försökt komma på vad som var fel med den här sidan innan jag bestämde mig för att lägga in ett inlägg här till slut. Jag vore tacksam om jag kunde få det här lilla problemet löst nån gång.

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

## #4 — Matte, 2004-06-06T20:13Z

Du kör:

```php
$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result2 = mssql_query($msquery,$connection);
    while ($s = mssql_fetch_array($result2))
    {
    $id = $s["id"];
    $namn = $s["namn"];
    $epost = $s["epost"];
    $amne = $s["amne"];
    $text = $s["text"];
    $ref_id = $s["ref_id"];
    $datum = $s["datum"];
    $dat = date('j/n H:i', strtotime($datum));
}
```

 
Det innebär att du för varje varv i slingan bara lägger in nya värden i variabler, men du skriver inte ut något.
Du får lägga in din utskrift i slingan också.

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

## #5 — addeweb, 2004-06-06T20:27Z

Ojdå, att utskriftet ligger utanför slingan?
Får väl flytta while-loopens slutparentes längre ner i koden om det är så du menar?

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

## #6 — Matte, 2004-06-06T20:30Z

Men det sista inlägget borde ha skrivits ut.
Så det är frågan om din while-slinga överhuvudtaget körs.
Lägg in lite kontrollutskrifter för test.

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

## #7 — addeweb, 2004-06-06T20:33Z

Jag ska göra det imorrn kväll när jag finns på skolan. Ska kolla upp det då. Tack så länge.

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

## #8 — addeweb, 2004-06-07T17:32Z

Fortfarande problem med svarsinlägg

Jag har ändrat så här nedan men det funkar inte än med 
svarsinläggen. Troligen är det fel på while-loopen.  :(

```php
 
// ------- Hämta alla svar till aktuell inlägg ----------

$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result = mssql_query($msquery,$connection);
	while ($s = mssql_fetch_array($result))	{
	$id = $s["id"];
	$namn = $s["namn"];
	$epost = $s["epost"];
	$amne = $s["amne"];
	$text = $s["text"];
	$ref_id = $s["ref_id"];
	$datum = $s["datum"];
	$dat = date('j/n H:i', strtotime($datum));

	?>
	<table width="<?=$tbwidth?>" align="center" border="0" cellspacing="0" cellpadding="4" style="border: solid 2px #FFCCFF; margin-bottom: 10px">
	<tr>
   	<td bgcolor="<?=$tdtopbgfarg?>" width="50%"><b><?=$amne?></b></td>
	<?php
	// Kolla status
	if($status >= 1 && isset($_SESSION['Loginname'])){ ?>
   		<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">[ <a href="tabort.php?id=<?=$id?>"><u>Ta bort</u></a> ]</td>
   	<?php } else { ?>
		<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right">&nbsp;</td>
   	<?php } ?>

	<td bgcolor="<?=$tdtopbgfarg?>" width="25%" align="right"><?=$dat?></td>
	</tr>
	<tr>
   	<td colspan="3" bgcolor="<?=$tdbgfarg?>"><?=$newtext = wordwrap($text, 50, "\n", 1)?></td>
	</tr>
	<tr>
   	<td colspan="3" bgcolor="<?=$tdbgfarg?>" height="10">&nbsp;</td>
	</tr>
	<?php
 
	if($epost == " "){
	//if (empty($epost))
	?>
	<tr>
   	<td colspan="2" bgcolor="<?=$tdbgfarg?>" width="70%">Skrivet av: <b><?=$namn?></b></td>
   	<td bgcolor="<?=$tdbgfarg?>" width="30%">&nbsp;</td>
	</tr>
	<?php } else {?>
	<tr>
   	<td colspan="2" bgcolor="<?=$tdbgfarg?>">Skrivet av: <b><?=$namn?></b> <a href="mailto:<?=$epost?>"><u>E-post</u></a></td>
   	<td bgcolor="<?=$tdbgfarg?>" align="right">&nbsp;</td>
	</tr>
	<?php }

	echo "</table>\n\n";

	}
	mssql_close();
```

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

## #9 — Matte, 2004-06-07T19:43Z

Kolla så att SQL-frågan ger något att skriva ut:

```php
$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result = mssql_query($msquery,$connection);
echo mssql_num_rows($result)." rader med svar hittades. <br>";
   while ($s = mssql_fetch_array($result))    {
```

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

## #10 — addeweb, 2004-06-08T20:47Z

Jag har provat med följande: 

```php
$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result = mssql_query($msquery,$connection);
echo mssql_num_rows($result)." rader med svar hittades. <br>";
   while ($s = mssql_fetch_array($result))    {
```

 
Men tyvärr fick jag inget resultat med SQL-frågan.

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

## #11 — Matte, 2004-06-09T06:59Z

Skrivs det ut "0 rader med svar hittades" eller skriver det inte ut någonting ?

Är det det senare så får du kolla upp vad som gör att du överhuvudtaget inte går in i koden som kör SQL-frågan. Någon if-sats tidigare som styr fel ?

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

## #12 — addeweb, 2004-06-09T07:02Z

Fortfarande får jag följande text när jag svarar på startinlägget:
"Det finns inga svar på detta inlägg ännu.".

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

## #13 — addeweb, 2004-06-09T07:06Z

Det skrivs inte ut nånting alls med den echo-rad som jag lade till igår. Inte ens en nolla. 
Nåväl, jag får väl kolla originalfilerna, jämföra och se om det är något som fattas.

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

## #14 — Matte, 2004-06-09T12:07Z

Du har följande kod:

```php
//------ Om det inte finns svarsinlägg ----------
//$rows = mssql_num_rows(mssql_query("SELECT * FROM forum WHERE ref_id = '".$_GET['id']."'"));
if (!$rows)
{

echo "<p>Det finns inga svar på detta inlägg ännu.</i></p>\n";
echo "<a href=\"index.php\">&#171 Tillbaka</a>";

mssql_close();

}else{
// ------- Hämta alla svar till aktuell inlägg ----------

$msquery = "SELECT * FROM forum WHERE ref_id = '$id' ORDER BY datum DESC";
$result2 = mssql_query($msquery,$connection);
    while ($s = mssql_fetch_array($result2))
```

 

Om if-satsen *if (!$rows)* blir sann kommer du att få det meddelande du fick, och det får du om det inte finns någon $rows.

Tag bort avmarkeringen på raden innan så du får ett värde på $rows.

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

## #15 — addeweb, 2004-06-09T12:21Z

Herregud!!!
Det där har jag missat!!  :r

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

## #16 — addeweb, 2004-06-09T20:13Z

Har nu rättat felet. Nu fungerar forumet som det ska. Det som 
återstår är paging på första sidan och slutjusteringar i övrigt. 
Tack för hjälpen den här gången.

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

## #17 — addeweb, 2004-06-09T20:42Z

Forumet krånglar fortfarande lite, särskilt när man tar bort inlägg. 
Får ett sådant felmeddelande nedan några gånger, inte varje 
gång. Vad kan det bero på? Hur löser jag det?

CGI Error
The specified CGI application misbehaved by not returning a 
complete set of HTTP headers.

Så här ser tabort-sidan ut: 

```php
<?php
	$amne = $_GET['amne'];

	$msquery = "SELECT FROM forum WHERE id = $id";
		if ($ref_id == 0)
		{
		$msquery = "DELETE FROM forum WHERE id = $id";
		mssql_query($msquery);
		$msquery2 = "DELETE FROM forum WHERE ref_id = '$id'";
		mssql_query($msquery2);
		mssql_close();
		header ("Location: index.php");
		}else{
		$msquery = "DELETE FROM forum WHERE id = '$id'";
		mssql_query($msquery);
		mssql_close();
		header ("Location: svar.php?id=$ref_id");		
		} 
	?>
		<h3 style="font-family:Verdana">Radering av inlägg</h3>
		<p style="font-family:Verdana; font-size: 11px">Ta bort rubriken: <b><?=$amne?></b></p>
		<form action="<?=$PHP_SELF?>" method="post">
		<input type="hidden" name="id" value="<?=$id?>">
		<input type="Submit" value="Ta bort" style="font-weight: bold" />
		</form>
```

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

## #18 — addeweb, 2004-06-09T20:57Z

Samma felmeddelande får jag också när man skickar ett svarsinlägg men inte varje gång.

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

## #19 — Matte, 2004-06-10T04:26Z

Testa med att ändra

```php
$amne = $_GET['amne'];
```

 
till

```php
if (isset($_GET['amne'])) {
   $amne = $_GET['amne'];
}
```

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

## #20 — addeweb, 2004-06-10T05:07Z

Jag ska ändra det men vill också visa felmeddelandet som jag får om jag öppnar själva tabort-sidan: 
 
*Warning: mssql_query(): message: Line 1: Incorrect syntax near '='. (severity 15) in C:\\Ex-jobb\\teqla\\forum\\tabort.php on line 38

Warning: mssql_query(): Query failed in C:\\Ex-jobb\\teqla\\forum\\tabort.php on line 38

Warning: mssql_query(): message: Line 1: Incorrect syntax near '='. (severity 15) in C:\\Ex-jobb\\teqla\\forum\\tabort.php on line 40

Warning: mssql_query(): Query failed in C:\\Ex-jobb\\teqla\\forum\\tabort.php on line 40

Warning: Cannot modify header information - headers already sent by (output started at C:\\Ex-jobb\\teqla\\forum\\tabort.php:38) in C:\\Ex-jobb\\teqla\\forum\\tabort.php on line 43

Radering av inlägg
Ta bort rubriken: 

Tabort.knapp*
 
Det är lite problem där fortfarande, särskilt med sql-frågorna, tror jag.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum  
Nästa sida: https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum/page2.md
