Avatar billede tingleff Praktikant
07. august 2002 - 15:28 Der er 14 kommentarer og
1 løsning

rykkes automatisk til næste side

Hej Jeg håber i kan hjælpe mig :-)

Jeg har et script, hvor på at det viser de sidste 8 udtalelser der er blevet skrevet på mit site.
Er der flere end 8 udtalelser, så laver den selv link til næste side og bla bla....scriptet kommer senere.

Kan det lade sig gøre at man i stedet har de sidste 8 udtalelser på siden, men når den næste udtalelse kommer så bliver de 8 rykket ned på næste side. og når det så er blevet til 8 udtalelser igen og den 9. kommer, så rykkes de 8 igen osv osv...håber i forstår hvad jeg mener.

her er mit script:

<?
$udtalelse = nl2br($_REQUEST[udtalelse]);
if ($udtalelse) {
$connection = mysql_connect ($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db ($mysql_db, $connection);
mysql_query ("INSERT INTO udtalelse (udtalelse, klub) values ('$udtalelse', '$klub')");echo mysql_error();
}
elseif ($opret) {
}
?>
                       
<?
$alimit = $side * 8;
$connection = mysql_connect ($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db ($mysql_db, $connection);
$result = mysql_query ("SELECT udtalelse,klub FROM udtalelse ORDER BY id DESC limit $alimit,8");
$antalsiderresult = mysql_query ("SELECT udtalelse,klub FROM udtalelse ORDER BY id DESC");
$antalsider = mysql_num_rows($antalsiderresult) / 8;
$aktuelside = $side + 1;

while ($row = mysql_fetch_array($result)) {
print "<b>$row[klub]</b><br>$row[udtalelse]<br><br>";
}
?>
<?php
          $x=1;
          $y=1;
          while ($x < $antalsider)
          {
            $x=$x+1;
            $y=$y+1;
          }
          echo " <table height=50>
                <tr align=middle valign=top>
                <td align=right width=180 id=id_menu> ";
          $tilbage=$aktuelside-1;
          if ($tilbage >  0)
          {
            $tilbage=$tilbage-1;
            echo " <a href=presse.php?side=$tilbage> Forrige runde </a> ";
          }
          echo "</td><td align=middle id=id_menu>side $aktuelside af $y </td> ";
          echo " <td align=left id=id_menu> ";
          if (($side+1) < $antalsider)
          {
            echo " <a href=presse.php?side=$aktuelside>Næste runde > </a> ";
          }
          echo "</td></tr></table> ";
?>                        

Hvad skal jeg gøre for at ændre det??

mvh

tingleff
Avatar billede jelzin101 Praktikant
07. august 2002 - 23:42 #1
spørgsmål flyttet.
Mvh.
Jelzin101/CoAdmin.
Avatar billede tipsen Nybegynder
08. august 2002 - 22:18 #2
Den funktionalitet du omtaler har du vel allerede idet du sorterer faldende efter id-nummeret i dine queries!?

Har forøvrigt en optimering til din kode - følgende vil køre en del hurtigere:

$result = mysql_query("SELECT udtalelse, klub FROM udtalelse ORDER BY id DESC limit $alimit, 8");
$antalposter = mysql_query("SELECT COUNT(*) FROM udtalelse");
$antalsider = mysql_result($antalposter,0) / 8;
$aktuelside = $side + 1;
Avatar billede tingleff Praktikant
11. august 2002 - 11:22 #3
det er ikke det den gør nu. Der viser den bare de sidste 8 på hver side, den rykker ikke automatisk de 8 indlæg når det 9. kommer.
Dvs når det 9. indlæg kommer på skal det være alene på 1. side og de 8 andre på den næste....forstår du?? :-)
Avatar billede tipsen Nybegynder
11. august 2002 - 11:30 #4
Jeg er ikke helt med prøv lige at kaste et blik på gæstebogen på tommyipsen.dk og fortæl mig om den opdeling er hvad du ønsker (bortset fra at der er 10 beskeder pr. side!)
Avatar billede tingleff Praktikant
11. august 2002 - 11:40 #5
det er jo som jeg har det nu. Der rykker den bare de sidste indlæg på siden bare ned på næste side når der kommer et nyt.
Det jeg skal ha er, 8 indlæg på hver side og når det 9. indlæg kommer, så skal alle 8 indlæg før det 9. rykkes til side 2.
Det er pisse svært at forklare. :-)
Avatar billede tipsen Nybegynder
11. august 2002 - 12:03 #6
Dvs de skal sorteres faldende efter dato - således at de nye poster står først og de ældste til sidst

Derudover vil du have at, hvis der er mere end 8 poster, skal side 2,3 osv alle indeholde præcis 8 poster, mens første side skal indeholde resten - fra 1-8!

Er der nogen årsag til at du ikke bare vil vise de 8 nyeste poster på den første side og den sidste (hvis der er 9 i alt) på side 2!? Det er væsentligt nemmere!
Avatar billede tingleff Praktikant
11. august 2002 - 12:09 #7
grunden til at jeg vil ha det sådan, er fordi vi har et spil kørende som vi spiller 1 gang om ugen. Folk kan så skrive en udtalelse omkring den spillerunde. Dvs at den nye spillerundes udtalelser skal stå på første side og den spillerunde før, skal stå på side 2 og den spillerunde før på side 3 osv osv.
Det går ikke rigtigt at der er blandet udtalelser fra hver sin runde på samme side.

Det med datoen er sådan set ligemeget.
Håber at jeg forklarede det ordentligt nu :-)
Avatar billede tipsen Nybegynder
11. august 2002 - 12:55 #8
Hvorfor laver du så ikke bare et felt i db'en som indikerer spillerunde og laver en sortering efter det?
Avatar billede tingleff Praktikant
11. august 2002 - 13:04 #9
øhhh hvordan :-)

glæder mig
Avatar billede tipsen Nybegynder
11. august 2002 - 13:23 #10
kald siden med

script.php?r=1 (for spillerunde 1)

og så laver du

$spillerunde = $_GET['r']
SELECT * FROM tabel WHERE sprunde = $spillerunde;

og har så et felt i tabellen, hvor spillerunde figurerer...
Avatar billede tingleff Praktikant
11. august 2002 - 13:32 #11
kan du fortælle mig hvor jeg skal smide dit forslag ind i mit script??
Avatar billede tipsen Nybegynder
11. august 2002 - 13:47 #12
nope - men nu har du en ide...
Avatar billede tingleff Praktikant
19. august 2002 - 22:29 #13
ok takker :-)...stik mig et svar
Avatar billede tipsen Nybegynder
02. september 2002 - 11:41 #14
never mind...
Avatar billede tingleff Praktikant
08. september 2002 - 21:00 #15
ok
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
Computerworld tilbyder specialiserede kurser i database-management

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