Avatar billede dalbjerg Nybegynder
21. maj 2005 - 19:37 Der er 8 kommentarer og
1 løsning

Sorteret efter dag

Hej

jeg har dette script

<?
session_start();
include("class/mysql.class.php");
include("class/system.class.php");
$mysql = new mysql();
$system = new system();
$mysql->mysqlconnect("localhost","fdfikastdk","XXXXXXX","fdfikastdk");
?>
<table border="0" width="100%" style="border: 1px solid #000000; ">
<tr><td style="border: 1px solid #000000; font-weight:bold; ">Navn</td>
<td style="border: 1px solid #000000; font-weight:bold;">Fødselsdag</td>
<td style="border: 1px solid #000000; font-weight:bold;">Alder</td>
<td style="border: 1px solid #000000; font-weight:bold;">Afdeling</td>
</tr>
<?
$sql = $mysql->sql("SELECT * FROM Allemedlemmer");
while($rs = mysql_fetch_array($sql)) {
    $fodsdag_arr = split("-", $rs["Fødselsdag"]);
    if($fodsdag_arr[1] == date(m)) {
        ?>
        </td>
        <tr>
        <td style="border: 1px solid #000000; " width="30%"><? echo $rs["Navn"]; ?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $fodsdag_arr[2]."/".$fodsdag_arr[1]."-".$fodsdag_arr[0];?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $alder=date('Y') - $fodsdag_arr[0]; ?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $rs["Afdelingsnavn"];?></td>
        </tr>
    <? } ?>
<? } ?>
</table>


Det virker fint, og lister også alle fødselsdage i denne måned, men hvordan for jeg den til at sortere således at personen der har fødselsdag d. 15/7-1981, bliver vist før ham der fødselsdag d. 14/7-1925.

Hvis jeg siger order by Fødselsdag, vil den jo tage år 1925, først der denne dato jo kommer før år 1981. men den skal altså se bort fra året.
Avatar billede jokkejensen Novice
21. maj 2005 - 19:43 #1
brug "Select * from medlemmer order by [DATE]" [DATE] erstatter du med det din dato kolonne hedder..
Avatar billede dalbjerg Nybegynder
21. maj 2005 - 19:45 #2
Nej, for så vil den gøre som jeg skrev:

CITAT:
Hvis jeg siger order by Fødselsdag, vil den jo tage år 1925, først der denne dato jo kommer før år 1981. men den skal altså se bort fra året.
Avatar billede jokkejensen Novice
21. maj 2005 - 19:48 #3
Hvilket format står de med i databasen ?

Har du forsøgt med ASC og DESC... kan ikke lige huske forskel !
Avatar billede barklund Nybegynder
21. maj 2005 - 19:49 #4
For det første bør du udvælge de rette medlemmer i din SQL - ikke i PHP. Derudover kan du sortere efter DAYOFMONTH:

$sql = $mysql->sql("SELECT Navn, DAYOFMONTH(Fødselsdag) AS dag, MONTH(Fødselsdag) as maaned, YEAR(Fødselsdag) AS aar FROM Allemedlemmer WHERE maaned = MONTH(NOW()) ORDER BY dag");
while($rs = mysql_fetch_array($sql)) {
        ?>
        </td>
        <tr>
        <td style="border: 1px solid #000000; " width="30%"><? echo $rs["Navn"]; ?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $rs['dag']."/".$rs['maaned']."-".$rs['aar'];?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $alder=date('Y') - $rs['aar']; ?></td>
        <td style="border: 1px solid #000000; " width="8%"><? echo $rs["Afdelingsnavn"];?></td>
        </tr>
<? } ?>
</table>

Vil jeg sige :)

--
Morten Barklund
Avatar billede barklund Nybegynder
21. maj 2005 - 19:49 #5
(jeg går ud fra, at din fødseldag-kolonne er af typen DATE)
Avatar billede dalbjerg Nybegynder
21. maj 2005 - 19:52 #6
barklund: Ja den står som dato:

Dit foreslag se godt ud, men den kommer desværre med denne fejl:
Unknown column 'maaned' in 'where clause'
Avatar billede dalbjerg Nybegynder
21. maj 2005 - 19:54 #7
$sql = $mysql->sql("SELECT Navn, DAYOFMONTH(Fødselsdag) AS dag, MONTH(Fødselsdag) as maaned, YEAR(Fødselsdag) AS aar FROM Allemedlemmer WHERE MONTH(Fødselsdag) = MONTH(NOW()) ORDER BY dag");

Sådan så virker den. Barklund svarer du?
Avatar billede barklund Nybegynder
21. maj 2005 - 20:07 #8
Hm ja, det er måske meget rigtigt :)

--
Morten Barklund
Avatar billede barklund Nybegynder
21. juli 2005 - 10:13 #9
Tark for points :)
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