webForumDet fria alternativet

en while.. ??

6 svar · 213 visningar · startad av Niklasson

NiklassonMedlem sedan nov. 2000823 inlägg
#1

Vad är fel?


<?
mysql_connect ("$server","$anvandare","$losen");
mysql_select_db ("$databas");
$query = "SELECT FROM forum WHERE ref_id = 0 ORDER BY datum DESC LIMIT $antal";
$resultat = mysql_query($query);
	if (!$resultat)
	{
	echo "<table border=\"0\" cellpadding=\"2\">\n";
	echo "<tr>\n";
	echo "   <td><p><b>Det finns inga inlägg i forumet ännu.</b></td>\n";
	}
	else
	{
	echo "<table border=\"0\" cellpadding=\"2\">
	  <tr>
	   <td>&nbsp;</td>
	   <td><b>Rubrik</b></td>
	   <td><b>Skrivet av</b></td>
	   <td><b>Datum</b></td>
	   <td><b>Svar</b></td>
	</tr>\n";
		while ($s=mysql_fetch_array($result))
		{
		$posted_by = $s["posted_by"];
		$email = $s["email"];
		$subject = $s["subject"];
		$text = $s["text"];
		$id = $s["id"];
		$ref_id = $s["ref_id"];
		$datum = $s["datum"];
	$raknasvar = mysql_num_rows(mysql_query("SELECT * FROM forum WHERE ref_id = $id"));
	mysql_query("$raknasvar");
	echo "<tr>\n";
	echo "   <td><a href=\"response.php?id=$id\">$subject</a></td>\n";
	echo "   <td>$posted_by</td><td>$datum</td>\n";
	echo "   <td align=\"middle\">$raknasvar</td>\n";
	}
mysql_close();
}
echo "</tr>\n</table>\n";
?>

Först och främst så får jag fel i if-satsen. Det finns ett id i databasen, men ändå vill scriptet visa "Det finns inga inlägg i forumet ännu.".

När jag byter if och else-koderna så dår jag felmeddelande på raden while ($s=mysql_fetch_array($result))

Felet ligger säkert framför ögonen på mig, men jag ser det inte.. x(

------------------
http://www.niklasson.net/

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Här är ett fel.


$query = "SELECT FROM forum WHERE ref_id = 0 ORDER BY datum DESC LIMIT $antal";

select * from forum t.ex.

(Du kan ju lägga in lite felchecker med anrop till mysql_error.)

red: Felstavning
------------------
essentitia preter non sans multiplicandum

[Redigerat av LarsG den 10 maj 2001]

NiklassonMedlem sedan nov. 2000823 inlägg
#3

Man behöver inte skriva SELECT * FROM forum. Det räcker med SELECT FROM forum.

Jag får inga felmeddelanden i mysql-raderna i början trots att jag skrivit tex $resultat = mysql_query($query) or die ("query-fel");

Det är något skumt, men jag vet inte vad.

Och varför fungerar inte while-satsen? Jag har en nästan identisk på en annan sida som fungerar.. x(

------------------
http://www.niklasson.net/

LarsGMedlem sedan dec. 200012 465 inlägg
#4
$resultat = mysql_query($query);
...
while ($s=mysql_fetch_array($result))

resultat i ena och result i andra

OT:
Det där med select from är mysqls påfund då, jag blir ganska irriterad av att dom lägger till onödiga standardavvikelser i sin SQL.

------------------
essentitia preter non sans multiplicandum

NiklassonMedlem sedan nov. 2000823 inlägg
#5

Bra. Nu fungerar while, men detta fungerar fortfarande inte:

mysql_connect ("$server","$anvandare","$losen");
mysql_select_db ("$databas");
$query = "SELECT * FROM forum WHERE ref_id = 0 ORDER BY datum DESC LIMIT $antal";
$result = mysql_query($query);
	if (!$result)
	{
	Skriver att det inte finns någon post.
	}
	else
	{
	Visa alla poster med ovanstående while-sats..
	}

------------------
http://www.niklasson.net/

SPiNMedlem sedan mars 20005 832 inlägg
#6

$result kommer alltid att existera, antingen i form av en sträng eller array har jag för mig. Prova istället med:
if(mysql_affected_rows() == 0) echo "Inga poster";

------------------
SPiN, bjorne.w@telia.com

-- Fame is a bitch, man [Brad Pitt - Fight Club] --

NiklassonMedlem sedan nov. 2000823 inlägg
#7

Mycket bättre. Tackar!!

Kolla gärna min andra tråd också: http://cgi.webforum.nu/wf/Forum12/HTML/001151.html

------------------
http://www.niklasson.net/

Genererad på 391 ms · cache AV · v20260730165559-full.f96bc7eb