---
title: "Problem med svarsinlägg till forum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum/page3"
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: 3
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 3 av 3._

## #41 — Matte, 2004-07-01T11:16Z

Se till att du får en SQL-fråga som plockar fram de rätta inläggen för dig.
Pagingen kan du lägga till sedan.

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

## #42 — addeweb, 2004-07-01T11:33Z

Tror jag ska skriva så här:

```php
$query = "
   SELECT TOP $row_max id, amne, namn, ref_id, MAX(datum) AS datum FROM forum GROUP BY id WHERE id NOT IN
 (SELECT TOP $row_start id FROM forum ORDER BY datum DESC)
AND ref_id = 0 ORDER BY datum DESC
";
```

Om det fungerar, det får jag se senare.

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

## #43 — Matte, 2004-07-01T11:50Z

Så länge du har med "ref_id = 0" kommer du endast att få med startinlägg.

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

## #44 — addeweb, 2004-07-01T12:08Z

Ja, men om man inte har ref_id = 0, då listas också rader med svarsinlägg på första sidan och det är inte meningen att det ska bli så. Det är bara datumet som ska uppdateras med svarsinlägg.

Har jag fattat rätt att du menar om man använder ref_id = 0, då får man bara datumet som startinlägget har??

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

## #45 — addeweb, 2004-07-01T19:38Z

Jag har fått några felmeddelanden med sql-frågan:

```php
$query = "SELECT TOP $row_max id, amne, namn, ref_id, MAX(datum) AS datum FROM forum GROUP BY id WHERE id NOT IN
 (SELECT TOP $row_start id FROM forum ORDER BY datum DESC)
AND ref_id = 0 ORDER BY datum DESC
";
```

*Warning: mssql_query(): message: Incorrect syntax near the keyword 'WHERE'. (severity 15) in C:\\Ex-jobb\\teqla\\forum\\index.php on line 150

Warning: mssql_query(): message: Incorrect syntax near the keyword 'ORDER'. (severity 15) in C:\\Ex-jobb\\teqla\\forum\\index.php on line 150

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

Warning: mssql_fetch_array(): supplied argument is not a valid MS SQL-result resource in C:\\Ex-jobb\\teqla\\forum\\index.php on line 178*
 
Rad 150: $result = mssql_query($query, $connection);
Rad 178: while($f=mssql_fetch_array($result))

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

## #46 — Matte, 2004-07-01T19:41Z

> **addeweb skrev:**
>
> Har jag fattat rätt att du menar om man använder ref_id = 0, då får man bara datumet som startinlägget har??

Ja.

Sen får du felmeddelande på dina SQL-frågor eftersom du har GROUP BY före WHERE.

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

## #47 — addeweb, 2004-07-01T20:09Z

Har lagt en ny sql-fråga:

```php
$query = "SELECT TOP $row_max id, amne, namn, MAX(datum) AS datum FROM forum WHERE id NOT IN
 (SELECT TOP $row_start id FROM forum ORDER BY datum DESC) AND ref_id = 0 GROUP BY id, amne, 
namn ORDER BY datum DESC
";
```

Men fortfarande kan man inte se svarsinläggets datum i listan  istället för startinläggets datum. 
Har även provat utan ref_id = 0 i frågan genom att skriva ett 
svarsinlägg men då får man en ny rad i listan med ämnet "SVAR: fafafa". Det går inte utan ref_id
i frågan om man inte vill ha svarsinlägg som ämnesrubrik i listan.

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

## #48 — Matte, 2004-07-01T20:52Z

Nu är jag kass på avancerade SQL-uttryck, och har dessutom endast arbetat mot MySQL, så det finns säkert bra mycket bättre sätt att lösa det på, och jag är långt ifrån säker på att det kommer att fungera.

Testa det här, och lägg till pagingen om du får det att fungera:

```php
$query = "
 SELECT f1.id, f1.amne, f1.namn, MAX(f2.datum) AS datum
 FROM forum f1
 LEFT JOIN forum f2 ON f1.id = f2.id
 WHERE f1.ref_id = 0
 GROUP BY f1.id, f1.amne, f1.namn
 ORDER BY datum DESC
";
```

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

## #49 — addeweb, 2004-07-01T21:44Z

Ok, jag ska testa det men det får bli på lördag. Har sett att du har lagt in LEFT JOIN. Trodde att man skulle joina två tabeller men det behövdes inte. Att joina en och samma tabell var nytt för mig. Jag återkommer sen och berättar om hur det har gått. Tack för tipset.

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

## #50 — addeweb, 2004-07-03T14:42Z

Har under lördagen testat sql-frågan:

```php
$query = "
 SELECT f1.id, f1.amne, f1.namn, MAX(f2.datum) AS datum
 FROM forum AS f1
 LEFT JOIN forum AS f2 ON f1.id = f2.id
 WHERE f1.ref_id = 0
 GROUP BY f1.id, f1.amne, f1.namn
 ORDER BY datum DESC
";
```

Men det är fortfarande problem med datumet. Det uppdateras inte med senaste svarsinlägg. Något felmeddelande har jag inte fått heller.
Har även testat en version med paging i:

```php
$query = "
 SELECT TOP $row_max f1.id, f1.amne, f1.namn, MAX(f2.datum) AS datum
 FROM forum AS f1
 LEFT JOIN forum AS f2
 ON f1.id = f2.id
 WHERE f1.ref_id = 0 AND f1.id NOT IN
 (SELECT TOP $row_start f1.id FROM forum ORDER BY datum DESC) 
 GROUP BY f1.id, f1.amne, f1.namn
 ORDER BY datum DESC
";
```

Pagingen fungerar i versionen ovan men om man klickar på sidlänken \[2\] för nästa sida får man då istället ett vanligt meddelande "Det finns inga inlägg i forumet ännu" men det är inte viktigt just nu. Viktigare är att få datumet att fungera som det ska.

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

## #51 — addeweb, 2004-07-05T15:18Z

> **Matte skrev:**
>
> Är ganska osäker på detta, men har för mig att detta kan uppstå om du använder en POST/GET-variabel som inte finns.
> 
> T.ex om du använder
>
>
> ```php
> if ($_POST['variabel'] == 'värde') {
> ```
>
> 
> Skriv då istället:
>
>
> ```php
> if (isset($_POST['variabel']) && $_POST['variabel'] == 'värde') {
> ```
>
> 
> 
> Är som sagt osäker på detta, men värt att prova i vilket fall då du samtidigt snyggar till koden och plockar bort notiser.

Jag antar att man gör så för att register globals är satt till off?
Har lagt in en annan tråd om tabortsidan och fick därför frågan om register globals.

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

## #52 — Matte, 2004-07-05T15:21Z

Gjorde det någon skillnad med denna typ av ändringar ?

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

## #53 — addeweb, 2004-07-05T15:38Z

Formuläret på forumets första sida har två hidden-fält. 
\<input type="hidden" name="id" value="main" /\>
\<input type="hidden" name="ref_id" value="0" /\>

Kanske man måste lägga in POST-variabler för dessa. 

På svarsidan har jag t ex:

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

if (isset($svar)){

.... satser....

}

// Det gick inte med empty att jag fick ta den övre raden. 
if($epost == " "){
//if (empty($epost)){
 
}else{
 ....satser....
}

// Här är delar som finns ovan svarsformuläret.
//if(isset($_POST['svar']) && $_POST['svar'] == 0){
	
	if ($svar == 0){

// formulär

}?>
```

På sådana ställen måste jag väl ändra.

Och sql-frågorna med variabeln på slutet t ex raden:
$msquery = "SELECT \* FROM forum WHERE id = $id";
Kanske måste jag ändra till '{$\_POST\['id'\]}'

Vad tycks?

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

## #54 — Matte, 2004-07-05T15:46Z

Använd $\_POST\['svar'\], $\_POST\['epost'\] o.s.v. också.

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

## #55 — addeweb, 2004-07-05T16:00Z

Jag får nog låta det där datumproblemet vila en vecka eller två. Kanske någon lösning hittas sen eller jag får skippa det där med att uppdatera datum med senaste inlägg.

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

## #56 — addeweb, 2004-07-06T14:17Z

Borttaget. Har ändrat mig. Måste fundera vidare.

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

## #57 — addeweb, 2004-07-06T22:42Z

Jag har funderat över forumet och svårigheterna med det. Det har tyvärr inte blivit så bra, bl a pagingen som krånglar, dvs de nedersta raderna finns även på nästa sida om man klickar på nästa sidlänk. Och datumet som inte uppdaterades med senaste svarsinlägg. 

Kanske bättre ta bort pagingen för att istället göra om forumet lite och enklare som att placera en formulär-länk **Skriv ett inlägg** ovan listan. På svarssidan kan man också placera en formulär-länk **Skriv ett svar på inlägget** ovan startinlägget med svarsinlägg under. Utan paging skulle det bli en lång lista att det är bättre med länk överst än ett formulär nere på sidan.

Och så kan jag också lägga en kolumn till för **Senaste** i listan på första sidan. Att ha två olika datum-kolumner i listan, startdatum och senaste svarsdatum, verkar bättre och enklare, tror jag. Har kollat exempel som fungerar så, t.ex startinlägg som inte har något svarsinlägg än har en tom plats för datumet tills någon svarar. Det blir till att göra två olika while-satser. 
**Tack för all hjälp!**

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

---

Tråden på webben: https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum/page3  
Föregående sida: https://www.webforum.nu/amne/php/105132-problem-med-svarsinlägg-till-forum/page2.md
