webForumDet fria alternativet

10 första raderna

5 svar · 260 visningar · startad av TroOmb

TroOmbMedlem sedan dec. 200215 inlägg
#1

Hej,

jag vill att den bara ska läsa dom 10 första raderna i tabellen. Hur ställer man in det?

<?
include "top.php";
?>
<?
// Börja med att surfa till skapa.php för att skapa tabellen i din MySQL-databas.
// Testa scriptet.
// Ändra designen i filerna top.php och ner.php.
require ("./installningar.php");
?>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="300" STYLE="BORDER: #000000 1PX SOLID;">
<?
if(isset($namn)){
$link = mysql_connect("$server","$db","$losen");
$sequel = "insert into sb(namn,inlagg,datum) values ('$namn','$inlagg',now())";
mysql_db_query("clanrrf","$sequel");
mysql_close($link);
}
$dblink = mysql_connect("$server","$db","$losen");
$sql="select * from sb ORDER BY datum DESC";
$result = mysql_db_query("clanrrf","$sql");
while($row = mysql_fetch_array($result)){

?>
<TR>
<TD BGCOLOR="<?=$farg?>" WIDTH="100%" VALIGN="top"><FONT FACE="Verdana" SIZE="1"><B><?=$row['namn']?>:</B> <?=$row['inlagg']?></FONT></TD>
</TR>
</TABLE><BR>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="300" STYLE="BORDER: #000000 1PX SOLID;">
<?
}
mysql_close($dblink);
?>
</TABLE>
<FORM METHOD="POST" ACTION="sb.php"><BR>
<TABLE BORDER="0" WIDTH="300">
<TR><TD><FONT FACE="Verdana" SIZE="1">Namn:</FONT></TD><TD><INPUT TYPE="TEXT" NAME="namn"></TD></TR>
<TR><TD><FONT FACE="Verdana" SIZE="1">Inlägg:</FONT></TD><TD>
<TEXTAREA NAME="inlagg" ROWS="5" COLS="30"></TEXTAREA></TD></TR>
<TR><TD> </TD><TD><INPUT TYPE="submit" VALUE="Skicka"></TD></TR>
</TABLE></FORM>
<?
include "ner.php";
?>

ViktorMedlem sedan aug. 20021 752 inlägg
#2

De 10 första raderna från sb??
Iställer för en while loop som du har du så skriver du en for loop,

for($i=0; $i<10; $i++)
{
$row = mysql_fetch_array($result));
}

/Viktor

MatteMedlem sedan aug. 20002 975 inlägg
#3

Eller så hämtar du bara 10 rader från databasen:

$sql="select * from sb ORDER BY datum DESC LIMIT 0,10";
TroOmbMedlem sedan dec. 200215 inlägg
#4

Tackar... Funkade utmärkt.. Men hur sätter jag en cookie så man inte behöver skriva in namnet hela tiden?

MatteMedlem sedan aug. 20002 975 inlägg
#5

Nu har jag knappt aldrig arbetat med cookies (använder sessioner istället), men du kan ju prova det här:

<?php 
// Börja med att surfa till skapa.php för att skapa tabellen i din MySQL-databas. 
// Testa scriptet. 
// Ändra designen i filerna top.php och ner.php.

/*
	Det får inte finnas någon output i filen installningar.php för
	att man ska kunna sätta en cookie.
	Inget mellanslag, tomrad eller radbyte före eller efter php-taggarna.
	Sätt markören vid den avslutande php-taggen och tryck
	upprepade gånger på delete så du är säker på där inte finns något.
*/ 
require ("./installningar.php"); 

if (!isset($_COOKIE['name'])){
	setcookie("name", "");
}

$link = mysql_connect("$server","$db","$losen"); 
mysql_select_db("clanrrf", $link);

if (isset($namn)){ 
	setcookie("name", $namn);
	$sequel = "insert into sb(namn,inlagg,datum) values ('$namn','$inlagg',now())"; 
	mysql_query($sequel); 
} 

include "top.php"; 

?> 
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="300" 
   STYLE="BORDER: #000000 1PX SOLID;"> 
<? 

$sql="select * from sb ORDER BY datum DESC LIMIT 0,3"; 
// Ändra 3:an mot en annan sifra (alltså så många meddelanden som ska visas) 

$result = mysql_query($sql); 

while($row = mysql_fetch_array($result)){ 

?> 
<TR> 
<TD BGCOLOR="<?=$farg?>" WIDTH="100%" VALIGN="top">
<FONT FACE="Verdana" SIZE="1"><B><?=$row['namn']?>:</B> <?=$row['inlagg']?></FONT></TD> 
</TR> 
</TABLE><BR> 
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="300" 
   STYLE="BORDER: #000000 1PX SOLID;"> 
<? 
} 

?> 
</TABLE> 
<FORM METHOD="POST" ACTION="sb.php"><BR> 
<TABLE BORDER="0" WIDTH="300"> 
<TR><TD><FONT FACE="Verdana" SIZE="1">Namn:</FONT></TD><TD>
<INPUT TYPE="TEXT" NAME="namn" value="<?=$_COOKIE['name'] ?>"></TD></TR> 
<TR><TD><FONT FACE="Verdana" SIZE="1">Inlägg:</FONT></TD><TD> 
<TEXTAREA NAME="inlagg" ROWS="5" COLS="30"></TEXTAREA></TD></TR> 
<TR><TD> </TD><TD><INPUT TYPE="submit" VALUE="Skicka"></TD></TR> 
</TABLE></FORM> 
<? 
include "ner.php"; 
?>

Jag vill betona att det är väldigt viktigt att du inte har någon output till webbläsaren före setcookie(). Output är HTML-kod, echo, print. Det är även tomrader, mellanslag och radbyten utanför php-taggarna.
Detta gäller även för inkluderade filer.

Och så ett litet citat från manualen angående mysql_db_query:

This function has been deprecated since PHP 4.0.6. Do not use this function. Use mysql_select_db() and mysql_query() instead.

TroOmbMedlem sedan dec. 200215 inlägg
#6

Tackar! Funkade utmärkt.. Tack ännu en gång.

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)