Tabellen sorteren op nieuw of oud
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
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
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
Code (php)
1
2
3
4
5
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());
?>
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
Cedric schreef op 14.01.2007 11:14:
Is het niet eerder zo?
Code (php)
1
2
3
4
5
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());
?>
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?
Gewijzigd op 01/01/1970 01:00:00 door Dion
Hij sorteerd niet....wat is er fout?
Dit is er een gedeelte uit:
Code (php)
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
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>';
}
}?>
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>';
}
}?>
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)
1
2
3
2
3
<?php
$queryTraktatie = 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
?>
$queryTraktatie = 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
?>
Hoe krijg ik dit goed?
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?
Code (php)
1
2
3
2
3
<?php
$queryTraktatie = 'SELECT *,DATE_FORMAT(datum, "%d-%m-%Y") AS Ned_datum FROM linkentraktatie ORDER BY '.$_GET['sorteer'].' DESC ';
?>
$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
Weer een goeie tip van je !!
Bedankt het werkt.
Offtopic:
Waarom lees jij je PHHP boek op de kop en achterstevoren?
@#$%$^ daarom krijg ik het dus niet voor elkaar!! Bedankt voor al weer een goeie opmerking.....