Avatar billede scapuliz Nybegynder
10. december 2005 - 00:48 Der er 21 kommentarer og
1 løsning

Vis kun 10 pr side i gæstebog

Hvis jeg laver en gæstebog og jeg gerne vil have den skal prine 10 beskeder ud pr. side hvordan gør det ?
Avatar billede tjp Mester
10. december 2005 - 01:12 #1
Det kommer jo lidt på resten af din kode... ;-)
Avatar billede jaw Nybegynder
10. december 2005 - 01:12 #2
Du bruger MySQL's LIMIT.

Altså, et ganske lille eksempel:

<?

$prside = 10; //jeg vil have 10 pr side
$start = (isset($_GET['s']) && is_numeric($_GET['s'])) ? $_GET['s'] : 0;

$query = mysql_query("SELECT * FROM tabel WHERE id = ".$_GET['id']." LIMIT $start, $prside");
Avatar billede jakobdo Ekspert
10. december 2005 - 08:03 #3
Så selve next/prev knapperne kan laves sådan (er bygget videre på jaw's løsning)

$query = mysql_query("SELECT count(id) AS antal FROM tabel");
$antalRows = mysql_result($query,0);

if($start > $prside)
{
    $prev = $start - $prside;
    echo " <a href=\"?s=$prev\"><< Prev</a>";
}

if(($start+$prside) < $antalRows)
{
    $next = $start + $prside;
    echo " <a href=\"?s=$next\"Next >></a>";
}
Avatar billede scapuliz Nybegynder
10. december 2005 - 22:08 #4
kan jeg få at vide hvordan det vikrer :)
Avatar billede jaw Nybegynder
10. december 2005 - 22:14 #5
Har du prøvet det?
Avatar billede scapuliz Nybegynder
10. december 2005 - 22:14 #6
$prside = 10; //jeg vil have 10 pr side
$start = (isset($_GET['s']) && is_numeric($_GET['s'])) ? $_GET['s'] : 0;

$query = mysql_query("SELECT * FROM IT WHERE undermenu = ".$_GET['id']." ORDER BY dato DESC LIMIT $start, $prside") or die (mysql_error());
while($row = mysql_fetch_array($foresp)) {

$query = mysql_query("SELECT count(undermenu) AS $prside FROM IT");
$antalRows = mysql_result($query,0);

if($start > $prside)
{
    $prev = $start - $prside;
    echo " <a href=\"?s=$prev\"><< Prev</a>";
}

if(($start+$prside) < $antalRows)
{
    $next = $start + $prside;
    echo " <a href=\"?s=$next\"Next >></a>";
}

} ser der ok ud ??
Avatar billede jaw Nybegynder
10. december 2005 - 22:17 #7
Nej, det er noget juks :)

Nærmere sådan her:

$prside = 10; //jeg vil have 10 pr side
$start = (isset($_GET['s']) && is_numeric($_GET['s'])) ? $_GET['s'] : 0;

$query = mysql_query("SELECT * FROM IT WHERE undermenu = ".$_GET['id']." ORDER BY dato DESC LIMIT $start, $prside") or die (mysql_error());
while($row = mysql_fetch_array($foresp)) {
    //din udskrift her
}


$query = mysql_query("SELECT count(undermenu) AS antal FROM IT");
$antalRows = mysql_result($query,0);

if($start > $prside)
{
    $prev = $start - $prside;
    echo " <a href=\"?s=$prev\"><< Prev</a>";
}

if(($start+$prside) < $antalRows)
{
    $next = $start + $prside;
    echo " <a href=\"?s=$next\"Next >></a>";
}
Avatar billede scapuliz Nybegynder
10. december 2005 - 22:18 #8
der virker ikke helt :S
Avatar billede jaw Nybegynder
10. december 2005 - 22:19 #9
Nå. Og sådan en kommentar kan så bruges til hest! Hvorfor virker det ikke, hvad sker der/sker der ikke? Lidt mere info, ellers kan jeg på ingen måde hjælpe...
Avatar billede scapuliz Nybegynder
10. december 2005 - 22:21 #10
<a href='hent_nyheder.php?id=software'>software</a>
<a href='hent_nyheder.php?id=hardware'>hardware</a>

<?
include ("connect.php");




$prside = 10; //jeg vil have 10 pr side
$start = (isset($_GET['s']) && is_numeric($_GET['s'])) ? $_GET['s'] : 0;

$query = mysql_query("SELECT * FROM IT WHERE undermenu = ".$_GET['id']." ORDER BY dato DESC LIMIT $start, $prside") or die (mysql_error());
while($row = mysql_fetch_array($query)) {

<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title></title>
</head>
<body>
<table style="text-align: left; width: 280px; height: 47px;"
border="1" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td><?php echo $row[overskrift]; ?><br>
<?php echo $row[forfatter]; ?> -<?php echo $row[dato]; ?> <br>
      <br>
      </td>
    </tr>
    <tr>
      <td></td>
    </tr>
  </tbody>
</table>
</body>
</html>
    //din udskrift her
}


$query = mysql_query("SELECT count(undermenu) AS antal FROM IT");
$antalRows = mysql_result($query,0);

if($start > $prside)
{
    $prev = $start - $prside;
    echo " <a href=\"?s=$prev\"><< Prev</a>";
}

if(($start+$prside) < $antalRows)
{
    $next = $start + $prside;
    echo " <a href=\"?s=$next\"Next >></a>";
}


?>

hmmm nu viser slet ikke noget :S
Avatar billede jaw Nybegynder
10. december 2005 - 22:30 #11
Ret til:

while($row = mysql_fetch_array($query)) {
?>
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title></title>
</head>
<body>
<table style="text-align: left; width: 280px; height: 47px;"
border="1" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td><?php echo $row[overskrift]; ?><br>
<?php echo $row[forfatter]; ?> -<?php echo $row[dato]; ?> <br>
      <br>
      </td>
    </tr>
    <tr>
      <td></td>
    </tr>
  </tbody>
</table>
</body>
</html>
<?
}
Avatar billede scapuliz Nybegynder
10. december 2005 - 22:41 #12
den skriver en syntax

software hardware You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY dato DESC LIMIT 0, 10' at line 1

CREATE TABLE `IT` (
  `id` int(11) NOT NULL auto_increment,
  `overmenu` varchar(255) NOT NULL default '',
  `undermenu` varchar(255) NOT NULL default '',
  `dato` varchar(255) NOT NULL default '0000-00-00',
  `overskrift` varchar(255) NOT NULL default '',
  `tekst` longtext NOT NULL,
  `forfatter` varchar(255) NOT NULL default '',
  `ansvarlig` varchar(255) NOT NULL default '',
  `foto` varchar(255) NOT NULL default '',
  `kilde` varchar(255) NOT NULL default '',
  `kildelink` varchar(255) NOT NULL default '',
  `forside` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=12 ;

#
Avatar billede jaw Nybegynder
10. december 2005 - 23:56 #13
Ja:

SELECT * FROM IT WHERE undermenu = '".$_GET['id']."' ORDER

Læg mærke til de 2 ' jeg har tilføjet.
Avatar billede scapuliz Nybegynder
11. december 2005 - 00:08 #14
give et svar
Avatar billede scapuliz Nybegynder
11. december 2005 - 00:08 #15
mænge tak btw
Avatar billede scapuliz Nybegynder
11. december 2005 - 00:10 #16
men den skriver kun 10 ud også neste side viser den ikke noget


<a href='hent_nyheder.php?id=software'>software</a>
<a href='hent_nyheder.php?id=hardware'>hardware</a>

<?

include ("connect.php");



$prside = 10; //jeg vil have 10 pr side
$start = (isset($_GET['s']) && is_numeric($_GET['s'])) ? $_GET['s'] : 0;

$query = mysql_query("SELECT * FROM IT WHERE undermenu = '".$_GET['id']."' ORDER BY dato DESC LIMIT $start, $prside") or die (mysql_error());
while($row = mysql_fetch_array($query)) {
?>
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
  <title></title>
</head>
<body>
<table style="text-align: left; width: 280px; height: 47px;"
border="1" cellpadding="2" cellspacing="2">
  <tbody>
    <tr>
      <td><?php echo $row[overskrift]; ?><br>
<?php echo $row[forfatter]; ?> -<?php echo $row[dato]; ?> <br>
      <br>
      </td>
    </tr>
    <tr>
      <td></td>
    </tr>
  </tbody>
</table>
</body>
</html>
<?
}


$query = mysql_query("SELECT count(undermenu) AS antal FROM IT");
$antalRows = mysql_result($query,0);

if($start > $prside)
{
    $prev = $start - $prside;
    echo " <a href=\"?s=$prev\"><< Prev</a>";
}

if(($start+$prside) < $antalRows)
{
    $next = $start + $prside;
    echo " <a href=\"?s=$next\"Next >></a>";

}


?>
Avatar billede scapuliz Nybegynder
11. december 2005 - 00:11 #17
Avatar billede jaw Nybegynder
11. december 2005 - 00:40 #18
De 2 links skal være:

echo " <a href=\"?id=".$_GET['id']."&amp;s=$prev\"><< Prev</a>";
Avatar billede jaw Nybegynder
11. december 2005 - 00:42 #19
Og det skulle så egentlig have været et svar :)

Og husk så lige, at halvdelen vist var Jakob's.
Avatar billede scapuliz Nybegynder
11. december 2005 - 01:01 #20
men prev virker ikke på neste side
Avatar billede jaw Nybegynder
11. december 2005 - 01:30 #21
if($start > $prside)
skiftes til
if($start >= $prside)

så skulle den vist være der...

Jakob - Halvdelen af pointene er dine, sig til hvis du vil have dem...
Avatar billede jakobdo Ekspert
11. december 2005 - 08:41 #22
Jeg vil altid gerne have point! :o)
Men kan se du har været en god støttepædagog her, så behold du dem bare!
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