25. marts 2005 - 22:08Der er
33 kommentarer og 2 løsninger
hjælp til paging
jeg har på min side et system hvor hver bruger her en gæstebog men jeg kunne godt tænke mig at der bliv vist max 10 per side jeg har prøvet lidt selv men kan ikke finde ud af det.
koden hvor jeg ikke selv har prøvet:
<?
session_start(); if (session_is_registered("brugernavn") AND ("kodeord")) { ?> <? include "mysql/mysql.php"; if($_GET[id] == "") { print "Du mangler et id!"; }else{
$hent_bruger = mysql_query("SELECT * FROM brugere WHERE id = '$_GET[id]'") or die(mysql_error()); while($vis = mysql_fetch_array($hent_bruger)) { ?>
/* Antallet af poster vi ønsker vist på hver side */ $pr_side = 10;
/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */ $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM profil_gb"),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;
/* Vi laver et database udtræk med limit, så den kun hiver det rigtige antal ud fra tabellen, husk at ændre ‘table’ til dit eget tabelnavn */ $hent_beskeder = mysql_query("SELECT * FROM profil_gb WHERE ejer = '$_GET[id]' ORDER BY id DESC limit $vis_fra, $pr_side") or die(mysql_error()); /* Vi kører en while og udskriver data, det jeg har sat på er blot et eksempel */ while($visb = mysql_fetch_array($hent_beskeder)) {
print "Brugernavn: "; print "$visb[brugernavn]";
print " - ";
print "Dato: "; print "$visb[dato]<br>";
print "Tekst: "; print "$visb[tekst]<br>";
print "<br>"; ?> <? }
?> <?
echo "<hr />";
/* Der undersøges om der skal udskrives et ”forrige side”-link, er dette tilfældet udskrives linket */ if ($vis_fra > 0) { $back= $vis_fra - $pr_side; echo "<a href='$_SERVER[PHP_SELF]?id=$_GET[id]??visfra=$back'>Forrige</a> "; } $page = 1;
/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */ 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++; }
/* Der undersøges om der skal udskrives et ”næste side”-link, er dette tilfældet udskrives linket */ if ($vis_fra < $antal - $pr_side) { $next = $vis_fra + $pr_side; echo " <a href='$_SERVER[PHP_SELF]?id=$_GET[id]?visfra=$next'>Næste</a>"; } ?> <? if($_POST[mode] == "skriv") { if($_POST[tekst] != "") { if($_GET[id] != "$_SESSION[brugernavn]") {
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Vi har faktisk løst problemet for din kode-broder (der ligesom navne-broder heller ikke betyder, at man er i familie). Hvilket faktisk skete i præcis det link, som bromer lagde længere oppe. Kig på det :)
du kan ikke bare paste så meget kode.. jeg gider personligt ikke at læse den igennem.. jeg stopper allerede ved if'en. Hvad er det præcis der ikke virker og hvorfor tror du det er gået galt? Hvordan har du debugget din kode for at finde fejl (for det har du vel gjort, da man jo ikke bare smider jo på eksperten uden at have forsøgt selv)
har i lavet det ham den anden eller hvad mener du? hmm jeg har selv tilføjet gæstebog til hver bruger, men jeg kan ikke finde ud af at gøre så der kun bliver vist 10 indlæg... jeg prøvede at følge en eller anden manual på på hephey.dk eller noget i den retning. men det gik ikke så godt for når man trykker næste side er siden helt blank og så henter pageren alle beskeder der er i sql
ved ikke om i har brug for tabellen men her er den
CREATE TABLE `profil_gb` ( `id` int(10) NOT NULL auto_increment, `ejer` varchar(100) NOT NULL default '', `dato` varchar(100) NOT NULL default '', `brugernavn` varchar(100) NOT NULL default '', `tekst` varchar(200) NOT NULL default '', PRIMARY KEY (`id`) )
Jamen kan du ikke se, hvad (jad) problemet er? Du overfører ikke id til siden - så det mangler. Altså skal du overføre både id og visfra i søgestrengen til undersiderne.
nej, jeg synes selv jeg har prøve det jeg kunne... kan ikke finde ud af php har nemlig først lige sat mig for at lære det.. jeg kan ikke finde ud af at gøre det du skriver
Når du bladrer skal der stadig stå ?id=ID i url'en - ellers kender du jo ikke id. Men der skal også stå visfra=10 - url'en skal altså blive til ?id=2&visfra=10 - så vil det virke.
nu virker det næsten det eneste problem er bare at jeg har skevet en masse indlæg i "test" gæstebog men ikke nogle i "test1" men selvom der ikke er nogle i "test1" så laver den stadig 1 2 3 4 5 6 7 Næste ligesom den gøre i "test"
Du skal jo kun tælle, hvor mange der er i din egen gæstebog her:
/* Vi tæller antallet af poster i tabellen husk at ændre ‘table’ til dit eget tabelnavn */ $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM profil_gb"),0) or die(mysql_error());
det er vel det her lille stykke kode i skal bruge eller skal i have hele koden?
<?
echo "<hr />";
/* Der undersøges om der skal udskrives et ”forrige side”-link, er dette tilfældet udskrives linket */ if ($vis_fra > 0) { $back= $vis_fra - $pr_side; echo "<a href='$_SERVER[PHP_SELF]?id=$_GET[id]&visfra=$back'>Forrige</a> "; } $page = 1;
/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */ for ($start = 0; $antal > $start; $start = $start + $pr_side) { if($vis_fra != $page * $pr_side - $pr_side) { echo "<a href='$_SERVER[PHP_SELF]?id=$_GET[id]&visfra=$start'>$page</a> "; } else { echo $page." "; } $page++; }
/* Der undersøges om der skal udskrives et ”næste side”-link, er dette tilfældet udskrives linket */ if ($vis_fra < $antal - $pr_side) { $next = $vis_fra + $pr_side; echo " <a href='$_SERVER[PHP_SELF]?id=$_GET[id]&visfra=$next'>Næste</a>"; } ?>
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.