Tabellen sorteren op nieuw of oud

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

14/01/2007 10:22:00
Quote Anchor link
Op mijn website heb ik een overzicht van traktaties met daarbij een kolom met datum van wanneer ik ze gemaakt heb.
Standaard wordt alles alfabetisch weergegeven op de naam van de traktatie.

Nu wil ik graag dat je ook kunt sorteren op datum. Dus als je de nieuwste traktatie wilt zien dat je dan op de tekst "datum" kunt klikken en er dan wordt gesorteerd met nieuw of oud bovenaan.

Ik weet dat het op twee manieren kan:
-Met twee driehoekjes naast elkaar met het puntje omhoog en omlaag wijzend. Maar dit vind ik te druk worden in de tabel. Ik wil namelijk als dit lukt ook op naam enzo sorteren.
-Dan zie je vaak dat je gewoon op het woord "datum" kunt klikken en dan word er ook gesorteerd. Moet je vaak wel twee keer klikken omdat je niet van te voren weet of er nu de nieuwe of oude items bovenaan komen.

Mijn voorkeur gaat uit naar het tweede idee.

Is dit te doen?
En zo ja, wie helpt me een stuk op weg.

Website is deze.
 
PHP hulp

PHP hulp

19/11/2024 18:24:16
 
Dion

Dion

14/01/2007 11:13:00
Quote Anchor link
misschien dit in je mysql query zetten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
ORDER BY ".$id." DESC
voorbeeld:
 $query = mysql_query("SELECT * FROM tabel ORDER BY ".$id." DESC") or die (mysql_error());  
?>


en dan linkjes met ?id=datum bijvoorbeeld

ik hoop dat ik werkt:D

Dion
 
Cedric

Cedric

14/01/2007 11:14:00
Quote Anchor link
Is het niet eerder zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
ORDER BY ".$_GET['id']." DESC
voorbeeld:
 $query = mysql_query("SELECT * FROM tabel ORDER BY ".$_GET['id']." DESC") or die (mysql_error());  
?>
Gewijzigd op 01/01/1970 01:00:00 door Cedric
 
Jens V

Jens V

14/01/2007 11:23:00
Quote Anchor link
Cedric schreef op 14.01.2007 11:14:
Is het niet eerder zo?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
ORDER BY ".$_GET['id']." DESC
voorbeeld:
 $query = mysql_query("SELECT * FROM tabel ORDER BY ".$_GET['id']." DESC") or die (mysql_error());  
?>


Is het niet zoiets dat je met php5 die $_get niet meer moet zetten?
 
Dion

Dion

14/01/2007 11:24:00
Quote Anchor link
kzou het nie tweten, ik heb er in iig geen variable van gemaakt
Gewijzigd op 01/01/1970 01:00:00 door Dion
 
Dion

Dion

14/01/2007 11:44:00
 

14/01/2007 12:19:00
Quote Anchor link
EDIT: Ik was vergeten het menu_id mee te geven.....

Hij sorteerd niet....wat is er fout?


Dit is er een gedeelte uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
if (!isset ($_GET['sorteer'])){ //als er nog niet op sorteren geklikt is...
        
        $queryTraktatie = 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS datum FROM linkentraktatie ORDER BY naam ';
        $resultTraktatie = mysql_query($queryTraktatie) or die ( "Sorry maar ik kan de traktaties dingen niet weergeven");
        
//resultaten in een tabel weergeven
    echo '<table class="tabelinhoud" align="center" width="550" cellpadding="4" cellspacing="1" >';
    echo '<tr><td colspan="4" align="center"><h1>Traktaties</h1></td></tr>' ;
    echo '<tr><td class="kopje"><a href="?menu_id='.$_GET['menu_id'].'&sorteer=naam">Naam</a></td><td class="kopje">Beschrijving</td><td class="kopje"><a href="?menu_id='.$_GET['menu_id'].'&sorteer=datum">Datum</a></td><td class="kopje" width="100">Klik voor uitleg</td></tr>';

    while ($rowTraktatie = mysql_fetch_object($resultTraktatie)){
    echo '<tr><td class="links">'. $rowTraktatie->naam . '</td><td class="omschrijving">'. $rowTraktatie->omschrijving .'</td><td class="datum">'.$rowTraktatie->datum.'</td>';
//afbeelding tonen met link
    echo '<td class="rechts"><a href="?menu_id='.$_GET['menu_id'].'&traktatie='. $rowTraktatie->linktraktatie_id .'" ><img src=" '. $rowTraktatie->plaatje .'" border="0" width="100" height="100"></a></td></tr>';
     }

echo '<tr><td colspan="4" align="center">';?>

<script type="text/javascript"><!--
google_ad_client = "pub-0817825055293462";
google_alternate_color = "FFFFFF";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
google_ad_channel ="";
google_color_border = "cccccc";
google_color_link = "000000";
google_color_bg = "cccccc";
google_color_text = "000000";
google_color_url = "000000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<?php
echo '</td></tr>'.ENTER ;
echo '</table>';
}
else{
        //als er wel op sorteren geklikt is, sorteer alle traktaties
        
        $queryTraktatie = 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
        $resultTraktatie = mysql_query($queryTraktatie) or die ( "Sorry maar ik kan de traktaties niet sorteren");
        
        
        //resultaten in een tabel weergeven
    echo '<table class="tabelinhoud" align="center" width="550" cellpadding="4" cellspacing="1" >';
    echo '<tr><td colspan="4" align="center"><h1>Traktaties</h1></td></tr>' ;
    echo '<tr><td class="kopje"><a href="?menu_id='.$_GET['menu_id'].'&sorteer=naam">Naam</a></td><td class="kopje">Beschrijving</td><td class="kopje"><a href="?menu_id='.$_GET['menu_id'].'&sorteer=datum">Datum</a></td><td class="kopje" width="100">Klik voor uitleg</td></tr>';

    while ($rowTraktatie = mysql_fetch_object($resultTraktatie)){

    echo '<tr><td class="links">'. $rowTraktatie->naam . '</td><td class="omschrijving">'. $rowTraktatie->omschrijving .'</td><td class="datum">'.$rowTraktatie->datum.'</td>';
//afbeelding tonen met link
    echo '<td class="rechts"><a href="?menu_id='.$_GET['menu_id'].'&traktatie='. $rowTraktatie->linktraktatie_id .'" ><img src=" '. $rowTraktatie->plaatje .'" border="0" width="100" height="100"></a></td></tr>';
     }

echo '<tr><td colspan="4" align="center">';?>

<script type="text/javascript"><!--
google_ad_client = "pub-0817825055293462";
google_alternate_color = "FFFFFF";
google_ad_width = 468;
google_ad_height = 15;
google_ad_format = "468x15_0ads_al_s";
google_ad_channel ="";
google_color_border = "cccccc";
google_color_link = "000000";
google_color_bg = "cccccc";
google_color_text = "000000";
google_color_url = "000000";
//--></script>
<script type="text/javascript"
  src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<?php
echo '</td></tr>'.ENTER ;
echo '</table>';
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door
 

14/01/2007 13:10:00
Quote Anchor link
Hmm, hij sorteerd dus wel maar de datum sorteerd hij op de eerste cijfers hoe ik het weergeef op de pagina.

In de database staat: DATE -> 0000-00-00

Op de pagina heb ik het met deze code zo weergegeven dat je het in het Nederlands leest 00-00-0000:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$queryTraktatie
= 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
?>


Hoe krijg ik dit goed?
 
Dion

Dion

14/01/2007 13:23:00
Quote Anchor link
Misschien kan je doen dat hij op maand sorteert, dat je de 2 getallen na de eerste 2 doet, dat kan toch met een explode ofzo?
 
Robert Deiman

Robert Deiman

14/01/2007 13:37:00
Quote Anchor link
Geef die DATE_FORMAT(datum) even een andere Alias in je AS, dan kan het wel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$queryTraktatie
= 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS Ned_datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
?>


Zo bijvoorbeeld en dan even de naam ook aanpassen op de plek waar je het weergeeft. Probeer maar eens.

Omdat je AS datum had staan, gaat die ook op DATE_FORMAT(datum, "%d-%m-%Y") sorteren in plaats van op de kolom.
Daarom altijd een andere naam geven dan de kolom die je gebruikt in DATE_FORMAT.

Dion schreef op 14.01.2007 13:23:
Misschien kan je doen dat hij op maand sorteert, dat je de 2 getallen na de eerste 2 doet, dat kan toch met een explode ofzo?

Als je met Explode werkt Dion, dan kan je daar niet op sorteren.
Explode is een PHP functie en geen MySQL functie.
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 

14/01/2007 13:43:00
Quote Anchor link
Hoi Robert.....

Weer een goeie tip van je !!
Bedankt het werkt.
 
Robert Deiman

Robert Deiman

14/01/2007 13:45:00
Quote Anchor link
Tjah. ;) Ik heb het zelf wel eens meegemaakt ;) Maar wel mooi dat het weer werkt. Zo kom je toch steeds goed vooruit met je Websites.

Offtopic:

Waarom lees jij je PHHP boek op de kop en achterstevoren?
 

14/01/2007 14:38:00
Quote Anchor link
Offtopic:
@#$%$^ daarom krijg ik het dus niet voor elkaar!! Bedankt voor al weer een goeie opmerking.....
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.