/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
En nummerrange fra database
Fra : N. Christensen


Dato : 09-01-05 08:19

Jeg kalder fra min database, de sidste 20 numre sådan her:

$qry = "SELECT * FROM img_head ORDER BY dato DESC LIMIT 20";
$res = mysql_query($qry);
$num = mysql_numrows($res);

Kan jeg i stedet fx kalde en nummerrange der hedder 60-70?! Altså
de 10 indlæg der har det nummer i min database?

Håber I forstår hvad jeg mener.

--
Fjern det el-drevne togsæt fra min e-mail, hvis du vil kontakte mig.



 
 
Peter Brodersen (09-01-2005)
Kommentar
Fra : Peter Brodersen


Dato : 09-01-05 09:17

On Sun, 9 Jan 2005 08:18:55 +0100, "N. Christensen" <ic3@er4ic3.dk>
wrote:

>Kan jeg i stedet fx kalde en nummerrange der hedder 60-70?! Altså
>de 10 indlæg der har det nummer i min database?

Det er et MySQL-relateret spørgsmål. Du kan se informationer om
mulighederne for LIMIT i din SELECT på fx:
http://dev.mysql.com/doc/mysql/en/SELECT.html
Find afsnittet "The LIMIT clause can be used to constrain the number
of rows .."

Her er der et eksempel på lige præcis det, du søger.

--
- Peter Brodersen

N. Christensen (09-01-2005)
Kommentar
Fra : N. Christensen


Dato : 09-01-05 10:12

>> Kan jeg i stedet fx kalde en nummerrange der hedder 60-70?! Altså
>> de 10 indlæg der har det nummer i min database?

> mulighederne for LIMIT i din SELECT på fx:
> http://dev.mysql.com/doc/mysql/en/SELECT.html
> Find afsnittet "The LIMIT clause can be used to constrain the number

Hmm! Ja, faktisk. Tak for det. Jeg søgte videre på siden, hvad så hvis
jeg vil kalde fx 53, 78, 18 og 24? Altså noget der ikke er i rækkefølge
i min table? Det synes jeg ikke jeg kan læse mig frem til.

--
Fjern det el-drevne togsæt fra min e-mail, hvis du vil kontakte mig.



Peter Brodersen (09-01-2005)
Kommentar
Fra : Peter Brodersen


Dato : 09-01-05 12:20

On Sun, 9 Jan 2005 10:12:03 +0100, "N. Christensen" <ic3@er4ic3.dk>
wrote:

>Hmm! Ja, faktisk. Tak for det. Jeg søgte videre på siden, hvad så hvis
>jeg vil kalde fx 53, 78, 18 og 24? Altså noget der ikke er i rækkefølge
>i min table? Det synes jeg ikke jeg kan læse mig frem til.

Du kan lave flere queries, evt. sammensat af UNION.

Det er dog sjældent, at der er behov for det. I det tilfælde, der er
behov for enkeltudpluk, foregår det normalt ved at man refererer til
en nøgle, i stedet for enkeltdele efter sortering. Enten via en
fremmednøgle eller ved explicit at angive nøglen. Fx:

SELECT * FROM img_head WHERE id IN (2,5,10)

Hvis man ønsker det, kan det dog laves med en kreativ subselect og en
variabel. Hvis resultatsættet ikke er så stort, kan man også overveje
blot at læse indholdet ind i et array i PHP, og så udvælge rækker
derfra.

--
- Peter Brodersen

N. Christensen (09-01-2005)
Kommentar
Fra : N. Christensen


Dato : 09-01-05 13:18

> SELECT * FROM img_head WHERE id IN (2,5,10)

Mange tak. Det var lige præcist det jeg skulle bruge.

--
Fjern det el-drevne togsæt fra min e-mail, hvis du vil kontakte mig.



N. Christensen (19-01-2005)
Kommentar
Fra : N. Christensen


Dato : 19-01-05 07:45

>> SELECT * FROM img_head WHERE id IN (2,5,10)

> Mange tak. Det var lige præcist det jeg skulle bruge.

Ja, så er jeg her igen. Med håb om at enten Peter eller en anden
måske kan hjælpe mig og mine PHP/SQL-problemer.

Nu har jeg denne linie i min php-fil, og den virker:

"SELECT * FROM img_head WHERE id IN (89,95,53,52)";

Jeg vil gerne have at der bliver sorteret via en kolonne som der
hedder "dato". Normalt plejer jeg at bruge:

"SELECT * FROM img_head ORDER BY dato DESC";

Men hvordan kan jeg kombinere de to overstående selects?

--
Fjern det el-drevne togsæt fra min e-mail, hvis du vil kontakte mig.



Peter Brodersen (19-01-2005)
Kommentar
Fra : Peter Brodersen


Dato : 19-01-05 13:41

On Wed, 19 Jan 2005 07:45:28 +0100, "N. Christensen" <ic3@er4ic3.dk>
wrote:

>"SELECT * FROM img_head WHERE id IN (89,95,53,52)";
>
>Jeg vil gerne have at der bliver sorteret via en kolonne som der
>hedder "dato". Normalt plejer jeg at bruge:
>
>"SELECT * FROM img_head ORDER BY dato DESC";
>
>Men hvordan kan jeg kombinere de to overstående selects?

SELECT * FROM img_head WHERE id IN (89,95,53,52) ORDER BY dato DESC

(spørgsmålet hører dog måske mere hjemme i dk.edb.database, hvor der
er flere SQL-kyndige folk :)

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste