Avatar billede hent-det Nybegynder
13. juni 2006 - 22:43 Der er 10 kommentarer og
1 løsning

Problem med visning af indhold fra DB

Jeg har et lille script her der skal vise de første 5 posts. Og så kommer der et "næste" link hvor de næste 5 posts kommer.

Koden ser således ud:

----------------------------------------------------------------
<?php
$conn = mysql_connect("localhost", "...", "...");
mysql_select_db("...") or die(mysql_error());

if(isset($_GET['s'])) $start = $_GET['s'];
else $start = 0;

$query = mysql_query("SELECT * FROM programmer ORDER BY id LIMIT $start, 5");
while ($row = mysql_fetch_array($query)) {

    echo          '<table width="368" cellpadding="0">';
       
            echo '<tr>';
            echo '<td width="50"><div align="center"><img src=\''.$raekke['image'].'\'></div></td>';
            echo '<td width="306"><table width="297" border="0" cellpadding="0" cellspacing="0">';
            echo '<tr>';
            echo '<td colspan="2"><a href="program.php?id='.$raekke['id'].'"><p style="font-family:arial; font-size:13px; color:#158AFF"><b>'.$raekke['overskrift'].'</a></b></p></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td><p style="font-family:arial; font-size:12px; color:#000000"><b>Emne: </b>'.$raekke['emne'].'</p></td>';
            echo '<td><p style="font-family:arial; font-size:12px; color:#000000"><b>Sprog: </b><img src=\''.$raekke['sprog'].'\'></p></td>';
            echo '</tr>';
            echo '<tr>';
            echo '<td><p style="font-family:arial; font-size:12px; color:#000000"><b>Tilf&oslash;jet: </b>'.$raekke['dato'].'</p></td>';
            echo '<td><p style="font-family:arial; font-size:12px; color:#000000"><b>Sv&aelig;rhedsgrad: </b><img src=\''.$raekke['rating'].'\'></p></td>';
            echo '</tr>';
            echo '<tr>';
            echo '</table>';
       
        echo '</table>';
}
?>
</table>
<?php
$query = mysql_query("SELECT count(*) FROM programmer")or die(mysql_error());
$data = mysql_fetch_row($query);
$num_rows = $data[0];
$page_name = basename($_SERVER['PHP_SELF']);

if(isset($_GET['s'])){
  $br = true;
  if($_GET['s'] <= 5){
    echo "<a href=\"$page_name\">Previous</a>";
  }
  else{
    $prev = $start - 5;
    echo "<a href=\"$page_name?s=$prev\">Previous</a>";
  }
  if($num_rows - $start > 5){
    echo " - ";
  }
}

if($num_rows - $start > 5){
  $br = true;
  $next = $start + 5;
  echo "<a href=\"$page_name?s=$next\">Next</a>";
}

?>
--------------------------------------------------------------

Her kan resultatet ses på min hjemmeside:
http://www.hent-det.dk/prog_css.php

Men mit problem er at den IKKE viser indholdet fra min DB. Altså når jeg f.eks har skrevet den skal vise overskriften er der bare blankt.

Er der nogen der kan se hvad der er galt i mit script?
Avatar billede nielle Nybegynder
13. juni 2006 - 22:48 #1
Prøv at ændre:

while ($row = mysql_fetch_array($query)) {

- til:

while ($raekke = mysql_fetch_array($query)) {
Avatar billede nielle Nybegynder
13. juni 2006 - 22:49 #2
... eller:

while ($raekke = mysql_fetch_assoc($query)) {

(..._assoc er mere effektiv end ..._array)
Avatar billede hent-det Nybegynder
13. juni 2006 - 22:50 #3
Tak det virkede med:
while ($raekke = mysql_fetch_array($query)) {

http://www.hent-det.dk/prog_css.php <-

Smid et svar:)
Avatar billede nielle Nybegynder
13. juni 2006 - 22:51 #4
Svar :^)
Avatar billede nielle Nybegynder
13. juni 2006 - 22:52 #5
Det vil også virke med mysql_fetch_assoc() - og den er som sagt mere effektiv end mysql_fetch_array().
Avatar billede hent-det Nybegynder
13. juni 2006 - 22:53 #6
Okay, hvad er forskellen?
Avatar billede hent-det Nybegynder
13. juni 2006 - 22:55 #7
Lige en anden ting, den viser de ældste posts først i scriptet, hvordan gør jeg så første side har de nyeste posts?
Avatar billede nielle Nybegynder
13. juni 2006 - 22:56 #8
Med mysql_fetch_array() kan du både skrive:

$raekke['id']

- og:

$raekke[0]

- hvis du skal have fat på id'et (som jeg gætter ligger på 1. plads i tabellen - deraf indeks 0).

Men da du alligevel kun bruger $raekke['id'], er der ingen grund til at dit script også bruger resourcer på $raekke[0].
Avatar billede nielle Nybegynder
13. juni 2006 - 22:58 #9
Du skal bare ændre sorteringsrækkefølgen:

$query = mysql_query("SELECT * FROM programmer ORDER BY id LIMIT $start, 5");

- til:

$query = mysql_query("SELECT * FROM programmer ORDER BY id DESC LIMIT $start, 5");
Avatar billede hent-det Nybegynder
13. juni 2006 - 23:02 #10
Super
forsat go' aften :)
Avatar billede nielle Nybegynder
13. juni 2006 - 23:03 #11
I lige måde :^)
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