Avatar billede downloadcentral.dk Nybegynder
09. maj 2004 - 22:12 Der er 13 kommentarer og
1 løsning

Paging i PHP

Hej,

jeg har nu længe forsøgt at få paging til at virke til siden www.dload.dk, men uden succes. Derfor håber jeg nu på nogen kan skære det så meget ud i pap som overhovedet muligt for mig og muligvis hjælpe mig med at tilpasse paging www.dload.dk, da jeg efterhånden er helt lost.

Jeg ville gerne have det skulle vises noget lignende <- 1 2 3 4 ->, med 5 downloads pr. side ( det kan jeg dog ændre selv :o) )

Jeg bruger MySQL som database og I kan sagtens få et kig i den, hvis det kunne hjælpe?

Hilsen PHP-spasseren.
Avatar billede dandyman Nybegynder
10. maj 2004 - 07:40 #1
Laver lige noget til dig
Avatar billede dandyman Nybegynder
10. maj 2004 - 07:45 #2
Skulle mene dette virker
<?php
/* CONFIGURATION */
$sql[host] = "localhost";
$sql[user] = "";
$sql[pass] = "";
$sql[db] = "";
$pr_side = 10;
$sql[tabel] = "downloads";
/* IKKE AENDRE MERE */
$connection = mysql_pconnect($sql[host], $sql[user], $sql[pass]);
mysql_select_db("database");



/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM ".$sql[tabel]),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;


$query = mysql_query ("SELECT * FROM ".$sql[tabel]." ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());

/* her skal lave om på hvordan den skal udskrive */
while ($row = mysql_fetch_array($query)) {
echo $row['id']."<br>";
}
echo "<hr />";


if ($vis_fra > 0) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}


if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>
Avatar billede downloadcentral.dk Nybegynder
10. maj 2004 - 08:26 #3
Uh ser godt ud :o) Jeg prøver det hurtigst muligt.
Avatar billede downloadcentral.dk Nybegynder
14. maj 2004 - 20:46 #4
Endelig oppe igen... Jeg kan se mit sidste indlæg er væk, hvilket er meget godt, da jeg havde kommet til at skrive password med i.. Du får en nu udskrift her:

<?php
/* CONFIGURATION */
$sql[host] = "xxx.xx.xxx.xx";
$sql[user] = "MMJ84_xxxxx";
$sql[pass] = "xxxxxxxxxx";
$sql[db] = "MMJ84_dlc";
$pr_side = 10;
$sql[tabel] = "dlc_files";
/* IKKE AENDRE MERE */
$connection = mysql_connect("xxx.xx.xxx.xx", "MMJ84_xxxxx", "xxxxxxxxxx");
mysql_select_db("database");



/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */
$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM ".$sql[tabel]),0) or die(mysql_error());

/* Hvis visfra-variablen ikke findes i URL-feltet og den ikke er et nummer og den er større end antallet i databasen, så sættes den til 0, ellers sættes den til værdien fra URL feltet */
$vis_fra = (isset($_GET["visfra"]) && is_numeric($_GET["visfra"]) && $_GET["visfra"] < $antal) ? $_GET["visfra"] : 0;


$query = mysql_query ("SELECT * FROM ".$sql[tabel]." ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error());

/* her skal lave om på hvordan den skal udskrive */
while ($row = mysql_fetch_array($query)) {
echo $row['id']."<br>";
}
echo "<hr />";


if ($vis_fra > 0) {
$back= $vis_fra - $pr_side;
echo "<a href='$_SERVER[PHP_SELF]?visfra=$back'>Forrige</a> ";
}
$page = 1;

for ($start = 0; $antal > $start; $start = $start + $pr_side) {
if($vis_fra != $page * $pr_side - $pr_side) {
echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
} else {
echo $page." ";
}
$page++;
}


if ($vis_fra < $antal - $pr_side) {
$next = $vis_fra + $pr_side;
echo " <a href='$_SERVER[PHP_SELF]?visfra=$next'>Næste</a>";
}
?>
Avatar billede downloadcentral.dk Nybegynder
14. maj 2004 - 20:46 #5
Følgende virker ikke. Jeg får følgende fejl: Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /hsphere/local/home/mmj84/downloadcentral.dk/paging.php on line 16
Table 'MMJ84_dlc.d' doesn't exist
Avatar billede dandyman Nybegynder
15. maj 2004 - 07:33 #6
tabellen eksistere ikke
Avatar billede downloadcentral.dk Nybegynder
16. maj 2004 - 23:59 #7
Nej, det kan jeg se. Den skriver jo også "'MMJ84_dlc.d'" selvom jeg har angivet den til MMJ84_dlc og ikke .d?
Avatar billede dandyman Nybegynder
17. maj 2004 - 08:35 #8
check i din database om tabellen eksistere


Den forkorter bare tabelnavnet
Avatar billede downloadcentral.dk Nybegynder
17. maj 2004 - 08:42 #9
Der er en tabel der hedder MMJ84_dlc.. Men den forlænger da? Den forkorter da ikke så??
Avatar billede dandyman Nybegynder
23. maj 2004 - 12:23 #10
jo efter . er tabel navn
Avatar billede downloadcentral.dk Nybegynder
28. maj 2004 - 18:36 #11
ahh ok prøver igen igen
Avatar billede downloadcentral.dk Nybegynder
28. maj 2004 - 18:41 #12
Men på $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM ".$sql[tabel]),0) or die(mysql_error()); tager den jo fra $sql[tabel] = "dlc_files"; og dlc_files er rigtig nok? -Fra min database: Database: MMJ84_dlc - Tabel dlc_files kører på xxx.xx.xxx.xx
Avatar billede downloadcentral.dk Nybegynder
06. juni 2004 - 03:49 #13
Jeg opretter et nyt spørgsmål, da dette ikke virker..
Avatar billede downloadcentral.dk Nybegynder
06. juni 2004 - 04:00 #14
-
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