Avatar billede snoezel Nybegynder
09. juni 2003 - 13:38 Der er 10 kommentarer og
1 løsning

Udtræk fra db

Jeg har et problem med at trække ud fra databsen, så resultatet bliver som jeg gerne vil have det :)

Lad os sige vi trækker 20 poster ud, de skal så listes i 5 rækker med 4 i hver. Jeg kan sagtens trække dem alle ud "i en kør" men ville gerne ende sådan her op:

<tr>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
  </tr>
  <tr>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
    <td width="25%">&nbsp;</td>
  </tr>
Nogen der har et bud ?
Avatar billede askeb Nybegynder
09. juni 2003 - 13:40 #1
hvilken database bruger du?
Avatar billede Slettet bruger
09. juni 2003 - 13:42 #2
Efter du have lavet dit udtræk og du har udskrevet <td width=......
Så indsæt dette

  $i++;
  if($i/5 == round($i/5)){
  echo "
    </tr>
    <tr>
  "; 
  }
Avatar billede Slettet bruger
09. juni 2003 - 13:42 #3
aha sorry, havde ikke set det var asp :)
er ikke helt vågen idag.
Avatar billede snoezel Nybegynder
09. juni 2003 - 13:43 #4
mysql database :)
Avatar billede snoezel Nybegynder
09. juni 2003 - 14:39 #5
man kan vende det om og sige, at når der er udskrevet 4 psoter fra recordsettet, skal der tilføjes koden </tr><tr>
Avatar billede nogetfx Nybegynder
09. juni 2003 - 14:56 #6
du starter fx rowcount = 0 før dit loop

i loopet:
rowCount = rowCount + 1

If rowCount = 4 or rowCount = 8 or rowCount = 12 or rowCount = 16 or rowCount = 20 Then
response.Write "</tr><tr>"
Avatar billede nogetfx Nybegynder
09. juni 2003 - 14:59 #7
Om det passer helt nøjagtigt med dine tal/planer ved jeg ikke, men hvis du kan se princippet i det, så kan du rette meget til bare ved at tælle antal og lave IF'er ud fra det...

Du skal dog tænke på at hvis der samlet er 37 poster i dit recordset, så vil du "mangle" 3 til sidste, så efetr dit loop er færdigt skal du tjekke op om rowcount = 20 for ellers ka din html se lidt spøjs ud, det komemr an på hvordan du har kodet den...
Avatar billede snoezel Nybegynder
09. juni 2003 - 16:44 #8
Det kan jeg sgu ikke hitte ud af :-)
Er der en der kan se hvordan det skal puttes ind her:


sqlTopliste = "SELECT * FROM tabelnavn ORDER BY klik DESC LIMIT 20"
        Set rsTopliste = Server.CreateObject("ADODB.RecordSet")
        rsTopliste.CursorLocation = 3
        rsTopliste.Open sqlTopliste, DBConnection, 1
        intPage = Request("side")
        If intPage = "" Or Not isNumeric(intPage) Or intPage < 1 Then
            intPage = 1
        End If
        rsTopliste.PageSize = 16
        rsTopliste.AbsolutePage = intPage
        intRecCount = rsTopliste.PageSize
        intPageCount = rsTopliste.PageCount
        i = ((intPage * 16) - 15)
        j = 1
        htmlBody = htmlBody & "<table align=""center"" cellpadding='4' cellspacing='2' class='mainIndhold'>"
        htmlBody = htmlBody & "<tr><td width='100%' colspan='4'>"
        htmlBody = htmlBody & "<center><img src='gfx/referrer.gif'></center>"
        htmlBody = htmlBody & "</td></tr>"
        Do While Not rsTopliste.EOF And intRecCount > 0
           
            htmlBody = htmlBody & "<tr bgcolor=""#BCA08F""> "
           
   
            htmlBody = htmlBody & "<td width=""125"" height='18'><a href='default.asp?valg=topliste&funktion=ud&id=" & rsTopliste("id") & "' class='gallery'>" & rsTopliste("titel") & "</a></td>"       
           
            htmlBody = htmlBody & "</tr>"           
            i = i + 1
            intRecCount = intRecCount - 1
            rsTopliste.MoveNext
            j = j + 1
        Loop
        If j < 17 then
            For j = 1 to 17 - j
                htmlBody = htmlBody & "<tr bgcolor=""#BCA08F""> "
                htmlBody = htmlBody & "<td height='18' colspan='2'><a href='default.aspmenu?valg=topliste&funktion=tilmeld' class='gallery'>Tilf&oslash;j "
                htmlBody = htmlBody & "link</a></td>"               
                htmlBody = htmlBody & "</tr>"               
                i = i + 1
            Next
            htmlBody = htmlBody & "</table>"
            htmlBody = htmlBody & "<br>"
           
        End If
Avatar billede snoezel Nybegynder
09. juni 2003 - 16:45 #9
det er inde i en funktion, og htmlBody udskrives i bunden af siden
Avatar billede nogetfx Nybegynder
10. juni 2003 - 19:19 #10
Jeg har noegt svært ved at overskue alle de loop's osv..

Hvad er J og I
Avatar billede snoezel Nybegynder
10. juni 2003 - 19:27 #11
Har fået det til at virke med: If (i/4) = CInt(i/4)
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
Kurser inden for grundlæggende programmering

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