17. november 2002 - 23:24
Der er
4 kommentarer og 1 løsning
Tagwall Pages
Hej Jeg har en tagwall som efterhånden er ved at blive fyldt til. Hvordan får jeg den til at lave flere sider med f.eks. 30 database udtræk ad gangen? Her er koden som den er nu --- <?php include ("db_con.php"); //Henter alt data ud af tagwall tabellen echo ("<div align=center>"); echo ("<div align=left><a href=\"?showpage=tagwall/tag\"><small>Add tag...</small></a></div><br>"); $sql = "SELECT * FROM tagwall ORDER BY id DESC LIMIT 50"; $sql_result = mysql_query($sql,$connection) or die ("QUERY failed."); while($row = mysql_fetch_array($sql_result)) { echo (" <table cellspacing=0 cellpadding=0 width=640> <tr> <td class=inside valign=top> <table widht=640 cellspacing=0 cellpadding=0> <tr> <td width=400 valign=top>$row[nick] </td> <td width=250 valign=top> <div align=right>$row[time] </div> </td> </tr> </table> </td> </tr> <tr> <td valign=top class=inside2> <div align=center> <table border=0 cellspacing=0 cellpadding=0> <tr> <td width=630 valign=top> <i>$row[msg]</i> </td> </tr> </table> </div> <hr size=0 color=silver> </td> </tr> </table> <br> "); } echo ("</div>"); mysql_free_result($sql_result); ?>
Annonceindlæg fra Partnertekst
17. november 2002 - 23:36
#1
LIMIT 50"; = LIMIT $fra,$til"; så laver du en link i bunden pages.php3?fra=0til30 også ved hver side. 0+30 30+30 osv... hvis du forstår ..
17. november 2002 - 23:40
#2
Det var det jeg ville høre.. Tak =) Var bare ikke sikker på at det bare kunne løses med sql =)
17. november 2002 - 23:46
#3
<?php include ("db_con.php"); //Henter alt data ud af tagwall tabellen if (!isset($_get[current_page])) { $_GET[$current_page] = 0; } if (!isset($_get[messages_per_page])) { $_GET[messages_per_page] = 30; } $_GET[total_posts] = mysql_result(mysql_query("SELECT COUNT(*) FROM tagwall"),0); $_GET[total_pages] = (int) ($_GET[total_posts] / $_GET[messages_per_page]); // her til har vi fundet ud af hvor mange posts der er i databasen $navigation_text = ""; if ($_GET[current_page] > 0) { $_GET[navigation_text] .= "<a href=\"$PHP_SELF?current_page=".($_GET[current_page]-1)."&messages_per_page=$_GET[messages_per_page]\" title=\"Previous page\">«</a> "; } else { $_GET[navigation_text] .= "« "; } for ($i=0;$i<=$_GET[total_pages];$i++) { if ($_GET[current_page] != $i) { $_GET[navigation_text] .= "<a href=\"$PHP_SELF?current_page=".($i)."&messages_per_page=$_GET[messages_per_page]\" title=\"Page ". ($i+1) ."\">". ($i+1) ."</a> "; } else { $_GET[navigation_text] .= "<b>". ($i+1) ."</b> "; } } if ($_GET[current_page] < $_GET[total_pages]) { $_GET[navigation_text] .= "<a href=\"$PHP_SELF?current_page=".($_GET[current_page]+1)."&messages_per_page=$_GET[messages_per_page]\" title=\"Next page\">»</a>"; } else { $_GET[navigation_text] .= "»"; } // her oprettes $navigation_text så den passer til den konkrete while løkke echo ("<div align=center>"); echo ("<div align=left><a href=\"?showpage=tagwall/tag\"><small>Add tag...</small></a></div><br>"); // din query skal så ændres lidt til følgende $query = "SELECT * FROM tagwall ORDER BY id DESC LIMIT ".($_GET[current_page] * $_GET[messages_per_page]).", $_GET[messages_per_page]"; $sql_result = mysql_query($query,$connection) or die ("QUERY failed."); while($row = mysql_fetch_array($sql_result)) { echo (" <table cellspacing=0 cellpadding=0 width=640> <tr> <td class=inside valign=top> <table widht=640 cellspacing=0 cellpadding=0> <tr> <td width=400 valign=top>$row[nick] </td> <td width=250 valign=top> <div align=right>$row[time] </div> </td> </tr> </table> </td> </tr> <tr> <td valign=top class=inside2> <div align=center> <table border=0 cellspacing=0 cellpadding=0> <tr> <td width=630 valign=top> <i>$row[msg]</i> </td> </tr> </table> </div> <hr size=0 color=silver> </td> </tr> </table> <br> "); } echo ("</div>"); mysql_free_result($sql_result); ?> til sidst udskriver du blot $_GET[navigation_text]; hvor du gerne vil have dine links til de forskellige sider. ovenstående er ikke testet men prøv det og fortæl mig om det virker
18. november 2002 - 00:26
#4
WOW! Det var noget af en kode du fik fyrret af der. Jeg tror altså ikek man skal bruge $_GET det er jo ikke forms, så det er ikke nødvendigt. Faktisk var jamal's kode liidt forkert, men ikke meget.. Man kan nemlig ikke sætte en fra og til men kun en fra og så en max pr. side. Min kode endte om sådan her: ----- <?php include ("db_con.php"); if(!$offset){ $offset = "0"; } echo ("<div align=center>"); echo ("<div align=left><a href=\"?showpage=tagwall/tag\"><small>Add tag...</small></a></div><br>"); $i = "0"; $sql = "SELECT * FROM tagwall ORDER BY id DESC LIMIT $offset,10"; $sql_result = mysql_query($sql,$connection) or die ("QUERY failed."); while($row = mysql_fetch_array($sql_result)) { $i = $i + 1; echo (" <table cellspacing=0 cellpadding=0 width=640> <tr> <td class=inside valign=top> <table widht=640 cellspacing=0 cellpadding=0><tr> <td width=400 valign=top> $row[nick] </td><td width=250 valign=top><div align=right>$row[time]</div></td></tr></table> </td> </tr> <tr> <td valign=top class=inside2> <div align=center> <table border=0 cellspacing=0 cellpadding=0> <tr><td width=630 valign=top> <i>$row[msg]</i> </td></tr> </table> </div> <hr size=0 color=silver> </td> </tr> </table> <br> "); } $f = $offset + 10; $b = $offset - 10; if($f > 10){ echo ("<a href=?showpage=tagwall/tagwall&offset=$b><small><--</small></a>"); if($i == 10){ echo (" | "); } } if($i == 10){ echo ("<a href=?showpage=tagwall/tagwall&offset=$f><small>--></small></a>"); } echo ("</div><br>"); mysql_free_result($sql_result); ?>
18. november 2002 - 22:06
#5
$_GET bruges heller ikke i forbindelse med forms, men i forbindelse med din variabler angivet ud fra addresse linien, du tænker jo nok på $_POST som er benyttet i forms.
Vi tilbyder markedets bedste kurser inden for webudvikling