Avatar billede lademan Novice
26. oktober 2003 - 10:46 Der er 17 kommentarer og
1 løsning

Hjælp maj

Hvorfor får jeg fejl på følgende?

$result = mysql_query("SELECT * FROM artikler, nyheder ORDER BY id DESC LIMIT 5");

FEJL: "Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource"
Avatar billede detox Nybegynder
26. oktober 2003 - 10:52 #1
Fordi der er noget galt med din forespørgsel. Prøv med:

$result = mysql_query("SELECT * FROM artikler, nyheder ORDER BY id DESC LIMIT 5") or die(mysql_error());
Avatar billede lademan Novice
26. oktober 2003 - 10:55 #2
Column: 'id' in order clause is ambiguous
Avatar billede lademan Novice
26. oktober 2003 - 10:56 #3
Det er meningen, at jeg vil hente de 5 nyeste rækker fra tabellerne artikler og nyheder. Dvs 5 rækker i alt.
Avatar billede detox Nybegynder
26. oktober 2003 - 10:58 #4
Er feltet id entydigt?
Avatar billede lademan Novice
26. oktober 2003 - 10:58 #5
begge tabeller indeholder feltet id
Avatar billede detox Nybegynder
26. oktober 2003 - 11:00 #6
Så er det nemmeste nok at lave to forespørgsler.
Avatar billede lademan Novice
26. oktober 2003 - 11:00 #7
egentlig er "ORDER BY dato" mere korrekt i forhold til det jeg vil, - men jeg får samme fejlmeddelelse.
Avatar billede htm Nybegynder
26. oktober 2003 - 11:06 #8
$result = mysql_query("SELECT * FROM artikler, nyheder ORDER BY arktikler.id DESC LIMIT 5");

Lav den om til det, så sorterer den via id i arktikler.
Avatar billede htm Nybegynder
26. oktober 2003 - 11:06 #9
Og så selvfølgelig med en or die...

$result = mysql_query("SELECT * FROM artikler, nyheder ORDER BY arktikler.id DESC LIMIT 5") or die(mysql_error());
Avatar billede lademan Novice
26. oktober 2003 - 11:07 #10
jamen så får jeg ikke de nyeste 5 nyheder eller artikler, men de nyeste artikler, ikke?
Avatar billede htm Nybegynder
26. oktober 2003 - 11:11 #11
Jo det er rigtigt.

Der vil jeg anbafale dig at lave 2 forespørgsler, og så sammenligne resultatet med php bagefter.

Alternativt skal du ændre i strukturen i din database, hvor du har en tabel med både nyheder og arktikler, så et tal afgører om det er en nyhed eller en arktikel.

eks.

id | dato | overskrift | tekst | type

Type indeholder så enten 1 for nyheder og 2 for arktikel.
Avatar billede lademan Novice
26. oktober 2003 - 11:14 #12
hvordan vil du lave php-delen så?
Avatar billede htm Nybegynder
26. oktober 2003 - 11:15 #13
Til hvilken løsning?
Avatar billede lademan Novice
26. oktober 2003 - 11:16 #14
"Der vil jeg anbafale dig at lave 2 forespørgsler, og så sammenligne resultatet med php bagefter."
Avatar billede lademan Novice
26. oktober 2003 - 11:17 #15
Noget i den her stil?

while ($row1 = mysql_fetch_array($result1)){
    while ($row2 = mysql_fetch_array($result2)){
        if ($row1[dato] > $row2[dato]){
            print "Artikel: $row1[titel]<br>";
            }else{
            print "Nyhed: $row2[titel]<br>";
            }
        }
    }
    $count++;
    if ($count == 5) break;
}
Avatar billede htm Nybegynder
26. oktober 2003 - 11:22 #16
Den kode vil vist ikke køre som du ønsker.

Jeg har ikkel ige tid til at strikk en løsning sammen nu, men noget med at stop det ind i et array og sorter dette. og så skrive det ud.
Avatar billede lademan Novice
25. november 2007 - 16:42 #17
Mange tak for hjælpen! Da der ikke er nogen, der har afgivet svar, lukkes tråden.
Avatar billede lademan Novice
25. november 2007 - 16:42 #18
.
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