Help bij "concept" lyrics site
Ik wil een klein lyrics cms proberen te maken.
Nu kan ik wel een beetje php, maar ik weet niet op welke -manier- ik het moet doen.
Het ding zou de liedjes, per artist, genre, en album moeten zetten dus zit ik hiermee vast:
Ik veronderstel dat het $_GET is dat ik moet gebruiken naar wat er wordt gevraags ? lied/album/artist
Nu als ik in de url heb ?band=769 toont het alle liedjes van die groep.
Als er dan geklikt wordt op een lied, komt er in de url ?band=769?song=9.
Maar hoe doe ik dan dat het niet meer een lijst van alle liedjes toont zoals in de eerste stap, waar er nog geen song is gedefinieerd ?
Ik hoop dat iemand mij op weg gaat helpen, of misschien een beter manier voorstelt ?
BIj voorbaat dank.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
if(isset($_GET['song']) && ctype_digit($_GET['song'])){
// show song
}
elseif(isset($_GET['band']) && ctype_digit($_GET['band'])){
// show band
}
else {
// show homepage
}
?>
if(isset($_GET['song']) && ctype_digit($_GET['song'])){
// show song
}
elseif(isset($_GET['band']) && ctype_digit($_GET['band'])){
// show band
}
else {
// show homepage
}
?>
Voorbeeldje...
Frank schreef op 23.02.2007 20:49:
Voorbeeldje...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
if(isset($_GET['song']) && ctype_digit($_GET['song'])){
// show song
}
elseif(isset($_GET['band']) && ctype_digit($_GET['band'])){
// show band
}
else {
// show homepage
}
?>
if(isset($_GET['song']) && ctype_digit($_GET['song'])){
// show song
}
elseif(isset($_GET['band']) && ctype_digit($_GET['band'])){
// show band
}
else {
// show homepage
}
?>
Voorbeeldje...
Doe ik dan gewoon in de volgorde van welk ze voorrang hebben ?
bv, $genre gaat voor $band gaat voor $album gaat voor $genre
Want ik zie hiermee nog altijd niet wat er gebeurt mochten er 2 gedefinieerd zijn ...
/m/metallica/kill_them_all.html :)
Dat is niet makkelijk... Waarom zou je mod_rewrite gaan gebruiken als je er ook komt met $_GET komt...
Dit is wat ik nu heb:
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
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
<?php
include ('config.php');
if (isset($_GET['band'])){ // artist set ?
if (ctype_digit($_GET['band'])){
$sql = mysql_query("SELECT * FROM artist WHERE id=".$_GET['band']."");
while ($row = mysql_fetch_array($sql)){
echo "".$row['name']."";
}
}
else{
echo "Invalid band";
}
} // end if artist
elseif (isset($_GET['char'])){ // artists first char set ?
if (ctype_alpha($_GET['char']{0})){ // letter ?
$sql = mysql_query("SELECT * FROM artist WHERE LOWER(LEFT(name, 1)) = '" . $_GET['char']{0} . "'");
if(!$sql){ echo "error on the char part: ".mysql_error();}
echo "<ul>\n";
while ($row = mysql_fetch_array($sql)){
echo "<li><a href=\"".$_SERVER['PHP_SELF']."\">".$row['name']."</a></li>\n";
}
echo "</ul>\n";
}
elseif (ctype_digit($_GET['char'])){ // number ?
$sql = mysql_query("SELECT * FROM artist WHERE name RLIKE '^[0-9]'");
if(!$sql){ echo "error on the char part: ".mysql_error();}
echo "<ul>";
while ($row = mysql_fetch_array($sql)){
echo "<li><a href=\"".$_SERVER['PHP_SELF']."\">".$row['name']."</a></li>\n";
}
echo "</ul>";
}
else{ // wrong ?
echo "Invalid char";
}
} // end if first char
?>
include ('config.php');
if (isset($_GET['band'])){ // artist set ?
if (ctype_digit($_GET['band'])){
$sql = mysql_query("SELECT * FROM artist WHERE id=".$_GET['band']."");
while ($row = mysql_fetch_array($sql)){
echo "".$row['name']."";
}
}
else{
echo "Invalid band";
}
} // end if artist
elseif (isset($_GET['char'])){ // artists first char set ?
if (ctype_alpha($_GET['char']{0})){ // letter ?
$sql = mysql_query("SELECT * FROM artist WHERE LOWER(LEFT(name, 1)) = '" . $_GET['char']{0} . "'");
if(!$sql){ echo "error on the char part: ".mysql_error();}
echo "<ul>\n";
while ($row = mysql_fetch_array($sql)){
echo "<li><a href=\"".$_SERVER['PHP_SELF']."\">".$row['name']."</a></li>\n";
}
echo "</ul>\n";
}
elseif (ctype_digit($_GET['char'])){ // number ?
$sql = mysql_query("SELECT * FROM artist WHERE name RLIKE '^[0-9]'");
if(!$sql){ echo "error on the char part: ".mysql_error();}
echo "<ul>";
while ($row = mysql_fetch_array($sql)){
echo "<li><a href=\"".$_SERVER['PHP_SELF']."\">".$row['name']."</a></li>\n";
}
echo "</ul>";
}
else{ // wrong ?
echo "Invalid char";
}
} // end if first char
?>
En het probleem, is dat als er in de url staat nu ?char=m?band=1
dat het nog steeds alleen toont wat er zou moeten getoont worden wanneer er alleen die char is gezet.
Dus kan iemand voorstellen wat ik moet doen zodat het alleen het eerste deel uitvoert ?