Avatar billede jkn83 Praktikant
01. august 2005 - 11:58 Der er 2 kommentarer og
1 løsning

Gamle nyheder, fejl i visning

Har fået lavet et nyheds system der kan vise, redigere, slette nyheder osv... Så jeg tænkte, det ville være rart med et arkiv hvor man kunne læse gamle nyheder. Ergo, det begyndte jeg at lave... Jeg har en index side med iframe i center. Linket fra arkivet har target til iframen så den gamle nyhed bliver vist der. Koden fra filen "oldnews.php" ser sådan ud:

<?php
              include("news/config.php");
              $db = mysql_connect($dbhost,$dbuser,$dbpass);
              mysql_select_db($dbname) or die("Kan ikke oprette forbindelse til databasen.");
               
                $id = $_REQUEST['id'];
                $query = mysql_query("SELECT * FROM news WHERE id='$id'");
                $result = mysql_query($query);
             
                  echo "<table>";
                while ($r = mysql_fetch_array($result)) {
                    echo "
                    <tr><td><span style=\"color: $head_color; font-weight: bold;\">$r[title]</span></td></tr>
                    <tr><td><span style=\"color: $body_color\">$r[news]</span></td></tr>\n";
                if ($news_info == 1) {
                    echo "<tr><td><div style=\"color: $info_color; border-top: 1px dashed $border_color; text-align: right;\">Tilføjet af $r[author] / $r[date]</div></td></tr>\n";
            }
        }
    ?>

Og selve fejlen lyder sådan her når man går ind på "den gamle nyhed" fra index siden velopmærket:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

Det vil sige, fejlen ligger i denne linie i kan se oppe i koden:
while ($r = mysql_fetch_array($result)) {

Har forsøgt med at fjerne while or erstatte med if, osv... og enda at fjerne den helt... Hvis den fjernes helt er der ingen fejl, men så vises den gamle nyhed jo klart nok heller ikke.

100 point til den der kan fixe et hurtigt og klart svar!
Avatar billede sukos Juniormester
01. august 2005 - 12:14 #1
Du kan prøve:
$id = $_REQUEST['id'];
$query = "SELECT * FROM news WHERE id='$id'";
$result = mysql_query($query);

Og du vil vel kun vise en enkelt ad gangen?

if(mysql_num_rows($result) == 1) {
$r = mysql_fetch_array($result);

echo..........................

}else{
echo"Ingen nyhed fundet som svarer til requested";

}
Avatar billede jkn83 Praktikant
01. august 2005 - 12:17 #2
ah... nm... fik løst det efter flere forsøg :D
Avatar billede jkn83 Praktikant
01. august 2005 - 12:18 #3
brugte en simplere måde :)

udskiftede første del af koden med det her:

                $id = $_REQUEST['id'];
                $query = mysql_query("SELECT * FROM news WHERE id='$id'");
                $r = mysql_fetch_array($query);
             
             
                echo " etc...

Og det løste mine problemer :D
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