Avatar billede michaeltryl Seniormester
22. marts 2011 - 01:13 Der er 2 kommentarer og
1 løsning

hent fra tabel hvor noget i tabel 2 er opfyldt

Jeg har to tabeller

tekster og kategorier

tekster:
tekst_id, kat_id, tekst

kategorier:
kat_id, titel, ny

jeg ønsker at hente de 20 nyeste tekster hvor kategori ikke er ny

så noget ligende
$kund = mysql_query("SELECT * FROM tekster WHERE kategorier.ny ='nej' ORDER BY vits_id DESC LIMIT 20") or die(mysql_error());

men er det overhovedet muligt?
Avatar billede Red0z Nybegynder
22. marts 2011 - 01:54 #1
SELECT t.tekst_id, t.kat_id, t.tekst
FROM Tekster t, Kategorier k
WHERE k.ny = 'nej'

Der er også en smartere måde at køre det på hvor man samler tabellerne, kan dog ikke huske den helt præcist men noget ala,

SELECT *
FROM Tekster t
WHERE ( SELECT * FROM Kategorier k WHERE k.kat_id = t.kat_id and k.ny='nej' )
22. marts 2011 - 04:40 #2
Hvis du har to tabeller og skal bruge data fra begge skal du 'joine' dem.  Det virker i princippet saaledes:  SELECT tekst FROM tekster JOIN kategorier ON tekster.kat_id = kategorier.kat_id WHERE kategorier.ny = 'nej'

Men det forudsaetter at alle tekster har en kategori.  Hvis det er saaledes at du somme tider lader en kategori vaere blank med mindre den er ny, saa skal du, for at faa disse kategorier med, erstatte JOIN med LEFT JOIN.

Og saa to spoergsmaal:  (1)  Hvordan ved du hvilke tekster der de nyeste?  Er det fordi du nummererer dem i tekst_id?  (2)  Du siger 'ORDER BY vits_id'.  Men du viser ikke nogen vits_id i dine tabeller.  Skulle det have vaeret 'ORDER BY tekst_id'?

Hvis svaret er ja til begge disse spoergsmaal, saa skulle dette virke:

$kund = mysql_query("SELECT tekst FROM tekster JOIN kategorier ON tekster.kat_id = kategorier.kat_id WHERE kategoeire.ny = 'nej' ORDER BY tekst_id DESC LIMIT 20")or die(mysql_error());
while($row = mysql_fetch_array($kund)) echo $row['tekst'] . "<br>";

..hvor du saa muligvis skal erstatte JOIN med LEFT JOIN.
Avatar billede michaeltryl Seniormester
22. marts 2011 - 09:07 #3
jeg fik løsningen fra Christian_Belgien  til at virke
tak for hjælpen
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