Avatar billede grise_bassen Nybegynder
25. marts 2005 - 22:08 Der 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)) {
?>

Brugernavn: <? echo $vis[brugernavn]; ?><br>
Navn: <? echo $vis[navn]; ?><br>
Email: <a href="mailto:<? echo $vis[email]; ?>"><? echo $vis[email]; ?></a><br>
Hjemmeside: <a href="<? echo $vis[hjemmeside]; ?>"><? echo $vis[hjemmeside]; ?></a><br>
Fritekst: <br><? echo $vis[fritekst]; ?><br>



<bR><br>
<b> <? echo $vis[brugernavn]; ?>´s gæstebog!</b>
<br>
<?
}
}
$hent_beskeder = mysql_query("SELECT * FROM profil_gb WHERE ejer = '$_GET[id]'") or die(mysql_error());
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>";
?>
<?
}

?>
<?
if($_POST[mode] == "skriv") {
if($_POST[tekst] != "") {
if($_GET[id] != "$_SESSION[brugernavn]") {

$dato = date('h:i:s');
mysql_query("INSERT INTO profil_gb (ejer, brugernavn, tekst, dato) VALUES ('$_GET[id]', '$_SESSION[brugernavn]', '$_POST[tekst]', '$dato')")or die(mysql_error());
print "<script language=\"javascript\">parent.location.replace('profil.php?id=$_GET[id]');</script>";
}
}
}

?>
<form action ="profil.php?id=<? echo $_GET[id]; ?>" method="POST">
<input type="hidden" name="mode" value="skriv">

<textarea name="tekst" rows="15" cols="20"></textarea><br>
<input type="submit" name="submit" value="Skriv">
</form>


<?
}else{
print "Du er ikke logget ind!";
}
?>




koden hvor jeg prøvede men ikke kunne få det til virke:

<?
session_start();
if (session_is_registered("brugernavn") && session_is_registered("kodeord") && session_is_registered("logintid")) {

?>
<?
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)) {
?>

Brugernavn: <? echo $vis[brugernavn]; ?><br>
Navn: <? echo $vis[navn]; ?><br>
Email: <a href="mailto:<? echo $vis[email]; ?>"><? echo $vis[email]; ?></a><br>
Hjemmeside: <a href="<? echo $vis[hjemmeside]; ?>"><? echo $vis[hjemmeside]; ?></a><br>
Fritekst: <br><? echo $vis[fritekst]; ?><br>



<bR><br>
<b> <? echo $vis[brugernavn]; ?>´s gæstebog!</b>
<br>
<?
}
}

/* 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]") {

$dato = date('h:i:s');
mysql_query("INSERT INTO profil_gb (ejer, brugernavn, tekst, dato) VALUES ('$_GET[id]', '$_SESSION[brugernavn]', '$_POST[tekst]', '$dato')")or die(mysql_error());
print "<script language=\"javascript\">parent.location.replace('profil.php?id=$_GET[id]');</script>";
}
}
}

?>
<form action ="profil.php?id=<? echo $_GET[id]; ?>" method="POST">
<input type="hidden" name="mode" value="skriv">

<textarea name="tekst" rows="15" cols="20"></textarea><br>
<input type="submit" name="submit" value="Skriv">
</form>


<?
}else{
print "Du er ikke logget ind!";
}
?>
Avatar billede bromer Nybegynder
25. marts 2005 - 22:38 #1
Jeg synes at denne kode virker bekendt:

if (session_is_registered("brugernavn") AND ("kodeord")) {
Avatar billede bromer Nybegynder
25. marts 2005 - 22:42 #2
Og det gjorde den sørme også:

http://www.eksperten.dk/spm/602164

Samme bruger eller bare samme kode?
Avatar billede grise_bassen Nybegynder
25. marts 2005 - 22:48 #3
det er bare samme kode.. det er et system jeg fik lavet i et spm på solutions2all.dk
og han har åbentbart følgede med i det og download systemet

http://www.solutions2all.dk/forum_spm.asp?id=13007
Avatar billede bromer Nybegynder
25. marts 2005 - 22:50 #4
yesh yesh
Avatar billede barklund Nybegynder
25. marts 2005 - 23:43 #5
bromer, vi blev vist "enige" om, at det ikke var samme bruger - bare to lige fjollede brugere - ovre i: http://www.eksperten.dk/spm/601451
Avatar billede bromer Nybegynder
25. marts 2005 - 23:46 #6
aha.. nu havde jeg ellers gået og glædet mig til at sende dig linket.. atlas
Avatar billede grise_bassen Nybegynder
25. marts 2005 - 23:50 #7
kan i hjælpe eller?
Avatar billede barklund Nybegynder
25. marts 2005 - 23:54 #8
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 :)

--
Morten Barklund
Avatar billede bromer Nybegynder
25. marts 2005 - 23:55 #9
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)
Avatar billede barklund Nybegynder
25. marts 2005 - 23:57 #10
Hm, næ, det er var ikke dette svar, vi løste i det andet spørgsmål - det var dit andet spørgsmål vi læste i det andet spørgsmål :/
Avatar billede bromer Nybegynder
26. marts 2005 - 00:00 #11
og vi læste ikke kun spørgsmålet.. vi løste det sgu også..
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:02 #12
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`)
)
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:03 #13
har i hjulpet ham med paging i brugernes gæsebog skuller der vist havde stået
Avatar billede barklund Nybegynder
26. marts 2005 - 00:05 #14
Nej, det var dit andet spørgsmål (om what to hvis ingen beskeder i indbakke) som vi løste.

Men had er problemet med dit forsøg? Hvilke(n) fejl får du?
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:07 #15
jeg er altså ikke helt med hvad i mener men prøv at gå og så login ind og går ing under profil
http://4boys.4b.funpic.org/test/
login og pass er: test
Avatar billede bromer Nybegynder
26. marts 2005 - 00:07 #16
had er tit et problem
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:08 #17
login og pass er: test
login og pass er: test1
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:09 #18
had er tit et problem <= griner
Avatar billede barklund Nybegynder
26. marts 2005 - 00:10 #19
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.
Avatar billede barklund Nybegynder
26. marts 2005 - 00:10 #20
had er tit et problem <= tisser
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:12 #21
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
Avatar billede barklund Nybegynder
26. marts 2005 - 00:14 #22
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.
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:18 #23
det gør der jo også $_SERVER[PHP_SELF]?id=$_GET[id]?visfra=$next'
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:19 #24
ups nej jeg har ? istedet for &
Avatar billede bromer Nybegynder
26. marts 2005 - 00:19 #25
det er også forkert. Du kan kun have eet "?" i din url. Gør nu som barklund skriver:

$_SERVER[PHP_SELF]?id=$_GET[id]&visfra=$next
Avatar billede barklund Nybegynder
26. marts 2005 - 00:21 #26
Og du mangler det i denne del:

/* Alle siderne udskrives så man med et klik kan få resultaterne fra fx 90-100 */
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:23 #27
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"
Avatar billede barklund Nybegynder
26. marts 2005 - 00:25 #28
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());

Altså tilføje WHERE ejer=$_GET[id]

Så burde det virke...

--
Morten Barklund
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:25 #29
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>";
}
?>
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:27 #30
uha ja det gør vist.. smid et svar begge to! mange tak
Avatar billede bromer Nybegynder
26. marts 2005 - 00:28 #31
danke
Avatar billede barklund Nybegynder
26. marts 2005 - 00:28 #32
Jæssør!
Avatar billede barklund Nybegynder
26. marts 2005 - 00:35 #33
Tark for points!
Avatar billede grise_bassen Nybegynder
26. marts 2005 - 00:38 #34
Det var da så lidt (GAB SKAL I SENG NU)
Avatar billede bromer Nybegynder
26. marts 2005 - 00:40 #35
tak tak
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