Avatar billede luzker Nybegynder
27. maj 2003 - 13:46 Der er 2 kommentarer og
1 løsning

Problemer med select afhængig af id

Jeg skal hente de to poster med højest id.

select nyhed from nyheder where id=max
og
select nyhed from nyheder where id=max-1

Men hvad er syntaksen?
Avatar billede zapzap Nybegynder
27. maj 2003 - 14:01 #1
-- seneste nyhed
select nyhed
from nyheder
where id = (select max(id) from nyheder)
-- næstseneste
select nyhed
from nyheder
where id = (select max(id) - 1 from nyheder)

-- sammensæt med UNION ALL
select ... (den første)
UNION ALL
select ... (den anden)

-- eller med OR

select nyhed
from nyheder
where id = (select max(id) from nyheder)
or id = (select max(id) - 1 from nyheder)

Bruger du f.eks. SQL Server, er der en nemmere måde:

select top 2 id from s03_transactions
order by id desc

'Top 2' siger de første 2, or det bliver de højeste id'er pga. ORDER BY ID DESC
Avatar billede luzker Nybegynder
27. maj 2003 - 15:51 #2
Jeg har prøvet følgende i stedet:

<?php
    $conn = mysql_connect("localhost", "hold04", "dtu");
    mysql_select_db("dturunners");

    $result_id = mysql_query("SELECT * FROM nyheder");
    $id = mysql_fetch_array($result_id);
    $result_news= mysql_query("SELECT * FROM nyheder WHERE id='$id['id']'");

    $news = mysql_fetch_array($result_news);
        echo $news['nyheder'];
           
   
    mysql_close($conn);    ?>

Herefter skulle den aktuelle nyhed blive udskrevet, men det bliver den ikke. Kan man bruge varible i sql-sætninger? Eller er der noget andet galt?
Avatar billede zapzap Nybegynder
02. juni 2003 - 10:40 #3
Hvis du ikke laver en ORDER BY, så kan SELECT * FROM NYHEDER give vilkårlige resultater. Den seneste nyhed vil være den første i din SELECT hvis du siger
ORDER BY ID DESC (desc = descending)
Du kan godt bruge variable, men som du viser det her, er du ved at blande SQL med PHP variable. Jeg tror at du skal dele udtrykket:
$result_news= mysql_query("SELECT * FROM nyheder WHERE id='$id['id']'");
til
$result_news= mysql_query("SELECT * FROM nyheder WHERE id=" + $id['id'] );

Jeg kender ikke PHP, så jeg ved ikke om det virker med +

Har MySQL ikke union?
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