Sortere på dato - drop down

Pong

Jeg selger sʇɥƃıluʍop :)
verdiene til drop down:
select distinct left(datofelt,7) as d from table order by d

valgte verdier:
select * from table where datofelt like '2009-08%'

husk å validere inn-verdien da man aldri kan stole på inn-data.
 

Hanse

New Member
SELECT * FROM entries WHERE MONTH(date) = 3, gitt at feltet er av typen DATETIME. MONTH() returnerer månedens nummer.
 

Sjefskoder

Sjefskoder
Nå ønsker jeg å å lage en drop down meny hvor man kan velge måned og så få listet alle entries som er gjort den måneden

PHP kode for å vise feltinnehold i dropdown ::

PHP:
<?php


/*Koble til database.*/ 
mysql_connect("HOST", "BRUKERNAVN", "PASSORD") or die ("Kunne ikke koble til database!");
/*Velge tabell*/
mysql_select_db('TABELLENAVN') or die ("Kunne ikke koble til ønsket tabell i database!");


//Spørringen vår
//Nå bruker jeg navn fra kunder, som eksempel

/*Velg navn fra kunder i stigende rekkefølge */
//ASC er stigende rekkefølge og DESC er synkende rekkefølge

$query = "SELECT navn FROM kunder ORDER BY navn ASC";
// Kjør på eller vis feilmeldingen.


$result = mysql_query($query) or die(mysql_error());
$dropdown = "<select name=''>";
while($row = mysql_fetch_assoc($result)) {
  $dropdown .= "\r\n<option value='{$row['navn']}'>{$row['navn']}</option>";
}
$dropdown .= "\r\n</select>";
echo $dropdown;

?>

/S
 
Slenger inn et relatert spørsmål her, jeg. Hvilke fordeler har det å bruke MySQL-datoformater i stedet for å bare ta UNIX-tid og lagre som int? Jeg har alltid gjort det siste og synes at det fungerer finfint. Den eneste ulempen jeg kan se er at jeg må regne ut manuelt hva dette tallet skal være om jeg skal legge inn rader manuelt og at jeg må gjøre det motsatte regnestykket dersom jeg ønsker å gå inn i databasen og lese dette, men begge deler er jo ting jeg bruker script til. Finnes det noen voldsomme fordeler med å gå over fra int til date som jeg overser?
 

Pong

Jeg selger sʇɥƃıluʍop :)
Sjef:
Jeg hadde tilpasset kommentaren litt - kan være du kopierte fra gammel kode?
mysql_connect kobler til serveren, mysql_select_db selekterer en database på serveren.

Olaf:
Jeg regner med at mysql lagrer dato/tid internt ganske effektivt, så da går det på ting som at det blir en del ekstra arbeid å regne om til unix tid (når du får dato fra brukeren), og noen ekstra funksjoner som begynnelse av en måned. En select * from tabell where created like '2010-02-%' blir en del ekstra arbeid / ekstra funksjoner.
Så er det en del innebygd dato-funksjoner (month, year, week etc) som ikke fungerer lenger. Og hvis du tar en export må du har kode som putter ut din int som dato igjen.

Jo mer kode som må leses ved tilpasning/vedlikehold jo dyrere det blir ;)
 
Topp