sorteer functie vanauit database
Ik ben op zoek naar een script waarin ik mijn cd kan invoeren.
Ik heb wel enige ervaring met php maar niet voldoende om dit volledig zelf te schrijven.
De meeste aanpassingen kan ik wel maken.
Ik zoek een script die het volgende doet.
Ik voer de volgende gegevens in:
artiest, album titel, cd/lp/dvd jaartal.
Dit invoer script heb ik wel (gratis geleend) maar hij sorteert niet zoals ik het wil.
Het idee is dat hij al deze gegevens uit de database haalt en dat ik kan sorteren zoals ik het wil.
bijvoorbeeld alles sorteren op artiest, album, cd/dvd/lp of jaartal.
Nu zou ik ook graag een combinatie van deze willen laten weergeven zoals eerst sorteren op artiest i.c.m. jaartal.
Of alle artiesten die beginnen met een b.
Zoiets.
Ik hoop dat ik het duidelijk heb kunnen uitleggen en dat er iemand is die weet waar ik zoiets kan vinden.
Alvast reuze bedankt.
Marcel
geef je zoektermen nummers en dan met switch
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
switch($zoekterm){
case 0:
// bv artiesten waarde=0 en dan gewoon wat je wil doen....
break;
case 1:
// bv album waarde=1
break;
case....
case 0:
// bv artiesten waarde=0 en dan gewoon wat je wil doen....
break;
case 1:
// bv album waarde=1
break;
case....
en het zoeken
alleen als je beginletter wilt als je midden in het woord wil zoeken moet het zoeits zijn als LIKE '%b%' en als het niet b moet zijn moet je b gewoon vervangen door een variable
Gewijzigd op 01/01/1970 01:00:00 door jo colling
Dit is wat ik nu heb maar dat doet niet wat ik eigenlijk wil.
Ik krijg dus wel de gegevens uit de database en hij sorteert ze op artiest.
Op zich prima maar nu wil ik ze daarna op jaartal gesorteerd hebben zodat die eerst kijkt naar de sortering van artiest en als tweede op jaartal.
Liever heb ik eigenlijk ook een systeem van bijvoorbeeld list/menu systeem.
Eerst een aantal zoekopdrachten op geven als b.v. artiest begint met a en een jaartal en dan zoeken.
Ik hoop dat mijn vraag duidelijk is.
Ik heb dit script ook gekregen en aangepast maar krijg het niet zoals ik het eigenlijk wil.
Alvast bedankt voor het kijken.
Gewijzigd op 01/01/1970 01:00:00 door marcel
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
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
<?php
$incl = include "..//config.php";
if($incl <> TRUE){
exit("<h2>Fout bij invoegen van bestanden</h2>");
}
?>
<div id="Layer2">
<table width="1127" height="45" bordercolor="#FFFFFF">
<tr>
<td width="339"><b><a href="./~safeuseroverzicht.php?sort=Titel<? if($_GET['sort'] == "Titel"){echo "_inv";} ?>">Titel</a>: </b></td>
<td width="452"><b><a href="./~safeuseroverzicht.php?sort=Artiest<? if($_GET['sort'] == "Artiest"){echo "_inv";} ?>">Artiest</a>: </b></td>
<td width="134"><b><a href="./~safeuseroverzicht.php?sort=CDLP<? if($_GET['sort'] == "CDLP"){echo "_inv";} ?>">CDLP</a>: </b></td>
<td width="182"><b><a href="./~safeuseroverzicht.php?sort=Jaartal<? if($_GET['sort'] == "Jaartal"){echo "_inv";} ?>">Jaartal</a>: </b></td>
</tr>
<?php
if (isset($_GET['sort'])){
if ($_GET['sort'] == "Titel"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Titel ASC"; }
if ($_GET['sort'] == "Artiest"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest ASC"; }
if ($_GET['sort'] == "CDLP"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY CDLP ASC"; }
if ($_GET['sort'] == "Jaartal"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Jaartal ASC"; }
if ($_GET['sort'] == "Artiest_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest DESC"; }
if ($_GET['sort'] == "Titel_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Titel DESC"; }
if ($_GET['sort'] == "CDLP_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY CDLP DESC"; }
if ($_GET['sort'] == "Jaartal_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Jaartal DESC"; }
}else{ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest ASC"; }
if (isset($_GET['letter'])){
$letter = $_GET['letter'];
$letter = substr ($letter, 0, 1);
$lijst_select = "SELECT * FROM kot_msnlijst WHERE `beginletter` = '".$letter."' ORDER BY Artiest ASC";
}
$lijst_query = mysql_query($lijst_select) or die(mysql_error());
while($lijst = mysql_fetch_object($lijst_query))
{
$msn = $lijst->msn;
$msn = str_replace (".", "[dot]", $msn);
$msn = str_replace ("@", "[at]", $msn);
echo "<tr><td>$lijst->Artiest</td><td>$lijst->Titel</td><td>$lijst->CDLP</td><td>$lijst->Jaartal</td></tr>";
}
?>
$incl = include "..//config.php";
if($incl <> TRUE){
exit("<h2>Fout bij invoegen van bestanden</h2>");
}
?>
<div id="Layer2">
<table width="1127" height="45" bordercolor="#FFFFFF">
<tr>
<td width="339"><b><a href="./~safeuseroverzicht.php?sort=Titel<? if($_GET['sort'] == "Titel"){echo "_inv";} ?>">Titel</a>: </b></td>
<td width="452"><b><a href="./~safeuseroverzicht.php?sort=Artiest<? if($_GET['sort'] == "Artiest"){echo "_inv";} ?>">Artiest</a>: </b></td>
<td width="134"><b><a href="./~safeuseroverzicht.php?sort=CDLP<? if($_GET['sort'] == "CDLP"){echo "_inv";} ?>">CDLP</a>: </b></td>
<td width="182"><b><a href="./~safeuseroverzicht.php?sort=Jaartal<? if($_GET['sort'] == "Jaartal"){echo "_inv";} ?>">Jaartal</a>: </b></td>
</tr>
<?php
if (isset($_GET['sort'])){
if ($_GET['sort'] == "Titel"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Titel ASC"; }
if ($_GET['sort'] == "Artiest"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest ASC"; }
if ($_GET['sort'] == "CDLP"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY CDLP ASC"; }
if ($_GET['sort'] == "Jaartal"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Jaartal ASC"; }
if ($_GET['sort'] == "Artiest_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest DESC"; }
if ($_GET['sort'] == "Titel_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Titel DESC"; }
if ($_GET['sort'] == "CDLP_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY CDLP DESC"; }
if ($_GET['sort'] == "Jaartal_inv"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Jaartal DESC"; }
}else{ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Artiest ASC"; }
if (isset($_GET['letter'])){
$letter = $_GET['letter'];
$letter = substr ($letter, 0, 1);
$lijst_select = "SELECT * FROM kot_msnlijst WHERE `beginletter` = '".$letter."' ORDER BY Artiest ASC";
}
$lijst_query = mysql_query($lijst_select) or die(mysql_error());
while($lijst = mysql_fetch_object($lijst_query))
{
$msn = $lijst->msn;
$msn = str_replace (".", "[dot]", $msn);
$msn = str_replace ("@", "[at]", $msn);
echo "<tr><td>$lijst->Artiest</td><td>$lijst->Titel</td><td>$lijst->CDLP</td><td>$lijst->Jaartal</td></tr>";
}
?>
Hij sorteert prima op artiest en niet op jaartal? Wat staat er dan in de database in jaartal en wat is het voor datatype?
Hij registreert in de database dan ook de eerste letter van de artiest dus tot zover gaat het goed maar daarna is hij wat willekeurig.
Van: ORDER BY Artiest ASC
Naar: ORDER BY Jaartal DESC, Artiest ASC
Code (php)
1
if ($_GET['sort'] == "Titel"){ $lijst_select = "SELECT * FROM kot_msnlijst ORDER BY Titel ASC"; }
hierin aanpassen?
(ja kom er steeds weer achter dat ik eigenlijk er nog veel te weinig van af weet maar wil het erg graag proberen.)
Dus op regel 22, 27, 32 en 38.
Eigenlijk mag je gewoon begrijpen:
ASC = oplopend: 1>10 en A>Z
DESC = aflopend: 10>1 en Z>A
Je kan meer dingen opgeven:
ORDER BY jaar DESC, artiest ASC, aantal_cds DESC
ORDER BY veldnaam ASC sorteert altijd alléén op die veldnaam. Wil jij dus op twee (of meer) veldnamen sorteren dan zal je die dus ook moeten opgeven gescheiden door een komma. Zie de post van Eddy Erkelens voor een voorbeeld.
Het kwartje begint te vallen en ga gelijk proberen dit voor elkaar te krijgen.
Bedankt en loop ik vast reageer ik weer.