SELECT name,age FROM names ORDER BY name ASC LIMIT $start,$per_page
Det bör fungera.
------------------
SPiN, bjorne.w@telia.com
8 svar · 223 visningar · startad av Elric
Hej,
Jag använder denna kod för att generera nästa & föregående navigering på en sida.
Koden:
<html>
<body>
<?
//connect to database
$link_id = mysql_connect("localhost","root");
$db = mysql_select_db("test");
//see how many total rows are in table
$query = "SELECT COUNT(*) FROM names";
$result = mysql_query($query);
$count = mysql_result($result,0);
//reset $page. make sure someone doesn't
//set it below zero in the url
if(!isset($page) || $page < 0)
{
$page = 0;
}
//records per page
$per_page = 5;
//starting record for this page
$start = $page * $per_page;
if($start > $count)
{
echo "No more records<BR>\n";
$page = ceil($count / $per_page);
}
else
{
$query = "SELECT name,age FROM names ORDER BY id ASC LIMIT $start,$per_page";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
echo $row[name] . " -- ";
echo $row[age] . "<BR>\n";
}
}
if($page > 0)
{
$prev = $page - 1;
echo "<a href='$PHP_SELF?page=$prev'><<Prev</a><BR>\n";
}
if($start + $per_page < $count)
{
$next = $page + 1;
echo "<a href='$PHP_SELF?page=$next'>Next>></a><BR>\n";
}
?>
</body>
</html>
MySQL tabellen ser ut så här:
+----+--------+------+
| id | name | age |
+----+--------+------+
| 1 | John | 25 |
| 2 | George | 23 |
| 3 | Fred | 45 |
+----+--------+------+
(Jag har såklart andra tebeller och variabler, så här såg skriptet ut som orginal)
Problemet är att jag vill sortera länkarna i alfabetisk ordning och inte efter 'id' variabeln
Exempel: Länkarna ordnas nu så här, id=1, id=2, id=3 etc, men jag vill ha dom ordnade efter tabellen 'name', alltså så att dom kan bli så här, id=3, id=2, id=4 etc i alfabetisk ordning.
Jag har testat att lägga till "ORDER BY name" i select men det hjälper inte. Går det att göra med detta skript?
[Redigerat av Elric den 31 jan 2002]
SELECT name,age FROM names ORDER BY name ASC LIMIT $start,$per_page
Det bör fungera.
------------------
SPiN, bjorne.w@telia.com
Nej, har redan testat det och det funkar inte.
Om jag tex är på sidan med 'id=2' och name=Boris, så är föregående länken 'id=1', 'name=Nicklas' och nästa länken 'id=3', 'namne=Arne'.
Jag vill ha det så här:
Är på sidan med 'id=2', 'name=Boris'
Föregående länken 'id=3', 'namne=Arne
Nästa länken 'id=1', 'name=Nicklas'
Hoppas ni förstår vad jag menar :q
Jadå, jag förstår. Men det finns inget enkelt sätt annars att göra det på, så är du säker på att du skrev precis som jag gjorde?
------------------
SPiN, bjorne.w@telia.com
Jodå jag har testat med olika sorteringar nu några hundra ggr, men har inte fått det att funka, kanske måste ha med 'name' variabeln i länken för att det skall funka tex "sida.php?id=1&name=Boris" ?
Vilken länk? I koden ovan så hade du endast länk till samma sida, där pagingen fortsatte!
------------------
SPiN, bjorne.w@telia.com
Glöm det, det var bara jag som funderade lite ;)
Jag lyckades lösa problemet, tack för hjälpen :)