Avatar billede iphase Nybegynder
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);
?>
Avatar billede jamal_s Nybegynder
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 ..
Avatar billede iphase Nybegynder
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 =)
Avatar billede horseshit Nybegynder
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\">&#171;</a>&nbsp;&nbsp;";
}
else {
    $_GET[navigation_text] .= "&#171;&nbsp;&nbsp;";
}

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>&nbsp;&nbsp;";
    }
    else {
        $_GET[navigation_text] .= "<b>". ($i+1) ."</b>&nbsp;&nbsp;";
    }
}

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\">&#187;</a>";
}
else {
    $_GET[navigation_text] .= "&#187;";
}

// 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
Avatar billede iphase Nybegynder
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);
?>
Avatar billede horseshit Nybegynder
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.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester