Hallo allemaal;

een tijdje terug hier een vraag gesteld, en heel veel reacties gehad, vandaar dat ik 't hier nu weer ga proberen. Ik heb weer een "lastig" dilemma, dat ik op mijn eigen - wellicht wat onbeholpen - manier zal proberen te verwoorden. Ik heb op mijn site een groot zogenaamd 'discography' overzicht (alle platen,CD's etc. van 'mijn' artiest). Voor elk item (elke single, video, CD, etc.) heb ik een eigen pagina met plaatje, release datum, tracklist. In de tracklist zijn alle tracks aan te klikken, en deze geven dan in een popup de tekst van het betreffende liedje weer. Kijk voor dit geheel eens HIER. Het is ontzettend veel werk om dit allemaal bij te werken. Nu komen op veel pagina's steeds dezelfde songs voor (denk aan bijvoorbeeld dezelfde CD die in verschillende landen wordt uitgegeven en dus meerdere pagina’s heeft, of aan “best off” CD’s). Op dit moment ziet zo’n pagina er globaal als volgt uit:

<?php
include("/var/www/c/chrisrea.nl/HTML/main/header_discography.php");
?>
<p class="text_2_left"><b>Blue guitars<br>Beginnings</b></p>
<p class="text_3_left"><b>2005</b><br><br>

01. <a href="javascript:void(0);"onclick="window.open(‘Lyrics-track1.php');">Track 1 </a>[tijdsduur]<br>
02. <a href="javascript:void(0);"onclick="window.open(‘Lyrics-track2.php');">Track 2 </a>[tijdsduur]<br>
03. <a href="javascript:void(0);"onclick="window.open(‘Lyrics-track3.php');">Track 3 </a>[tijdsduur]<br>

Etc.
</p>
<?php
include("/var/www/c/chrisrea.nl/HTML/main/footer.php");
?>


Nu zou ik graag een systeem willen hebben dat het volgende doet (even heel “basic” opgeschreven, ik weet absoluut niet welke temen ik hiervoor zou moeten gebruiken):

If $track=”100” then $link=”Lyrics-track100.php” and $name=”Naam van liedje 100”
If $track=”101” then $link=”Lyrics-track101.php” and $name=”Naam van liedje 101”
If $track=”102” then $link=”Lyrics-track102.php” and $name=”Naam van liedje 102”
If $track=”103” then $link=”Lyrics-track103.php” and $name=”Naam van liedje 103”
If $track=”104” then $link=”Lyrics-track104.php” and $name=”Naam van liedje 104”
Etc. dit moet dus een lijst worden van alle mogelijke songs (zo’n 800!)

En dan bij het daadwerkelijk weergeven van de tracklist:
$track=”100”
01. <a href=$link>$name</a>[1.23]
$track=”101”
02. <a href=$link>$name</a>[2.34]
$track=”102”
03. <a href=$link>$name</a>[3.45]

Dan zou de output dus zijn:

01. Naam van liedje 100 [1.23] (en dit is dan een link naar ”Lyrics-track100.php”)
02. Naam van liedje 101 [1.23] (en dit is dan een link naar ”Lyrics-track101.php”)
03. Naam van liedje 102 [1.23] (en dit is dan een link naar ”Lyrics-track102.php”)

Etc. Ik hoop dat ik mijzelf een beetje duidelijk heb kunnen maken en dat iemand mij kan of wil helpen. Indien je meer informatie nodig hebt, laat het mij alsjeblieft weten. Alvast heel erg hartelijk dank !!

Met vriendelijke groet, Bart (webmaster www.chrisrea.nl)

Hoi Bart,

je wilt dus dynamisch links genereren. Dat kan, maar dat hangt sterk af van je database structuur. Hoe ziet je datamodel er uit?
Jan Koehoorn schreef op 30.12.2005 00:08
Hoi Bart,

je wilt dus dynamisch links genereren. Dat kan, maar dat hangt sterk af van je database structuur. Hoe ziet je datamodel er uit?


Hallo;

Misschien had ik erbij moeten vertellen, ik ben een absolute leek. Ik heb - 100% dankzij de hulp van mensen op fora en mt behulp van tutorials - het e.e.a. aan php op mijn site gebruikt maar dat betekend niet dat ik er veel vanaf weet. Ik vind het allemaal heel intressant, maar ook wel héél erg moeilijk ! Om kort te gaan, ik weet niet wat voor datamodel ik heb (ik denk eigenlijk geen). Ik maak op dit moment voor elk discography-item een nieuwe pagina aan. Elke regel van de tracklist is vervolgens een link die een popup opent, en in die pop-up wordt een pagina geladen met de tekst van het betreffende liedje. Voor elke tekst heb ik dus een nieuwe pagina aangemaakt, die ik een apparte directory "/lyrics/" bij elkaar staan. Ik hoop dat dit - deels - je vraag beantwoord en dat je me aan de hand hiervan verder kunt en wilt helpen. In elk geval alvast hartelijk dank !!

Groet, Bart
niels schreef op 30.12.2005 00:21
werk je met een database?


Ik heb voor het forum op mijn site (PHPBB) een mySQL database, maar ik weet echt niet hoe dat verder werkt. Ik gebruik dan ook verder geen database voor de site, alleen zoals ik hierboven al geprobeerd heb te beschrijven links naar verschillende losse paginas.

Groet, Bart
Ik snap het. De opzet van je site is dus dat je eigenlijk alles met de hand hebt gemaakt. Je moet een echte liefhebber zijn dus :-)

Als je met een database zou werken dan zou je een opzet kunnen maken waarbij dit soort dingen automatisch gegenereerd wordt.

Je moet je dat ongeveer zo voorstellen:

je hebt een tabel met tracks. Daarin kun je bijvoorbeeld de titel, de speelduur, het mp3 bestand en de songtekst kwijt.

je hebt ook een tabel met cd's. Daarin staat bijvoorbeeld de titel van de cd en de datum waarop hij uitkwam

dan kun je een koppel tabel maken waarin je verwijst naar een cd en een track. Je maakt dus combinaties van die twee, wat betekent dat een bepaalde track op een bepaalde cd staat.

Ik probeer hier een datamodel voor je te schetsen. Ik weet niet of je het kunt volgen, maar dat is wat nodig is, als je de dingen handiger aan wilt pakken.
Jan Koehoorn schreef op 30.12.2005 00:28
Ik snap het. De opzet van je site is dus dat je eigenlijk alles met de hand hebt gemaakt. Je moet een echte liefhebber zijn dus :-)

Als je met een database zou werken dan zou je een opzet kunnen maken waarbij dit soort dingen automatisch gegenereerd wordt.

Je moet je dat ongeveer zo voorstellen:

je hebt een tabel met tracks. Daarin kun je bijvoorbeeld de titel, de speelduur, het mp3 bestand en de songtekst kwijt.

je hebt ook een tabel met cd's. Daarin staat bijvoorbeeld de titel van de cd en de datum waarop hij uitkwam

dan kun je een koppel tabel maken waarin je verwijst naar een cd en een track. Je maakt dus combinaties van die twee, wat betekent dat een bepaalde track op een bepaalde cd staat.

Ik probeer hier een datamodel voor je te schetsen. Ik weet niet of je het kunt volgen, maar dat is wat nodig is, als je de dingen handiger aan wilt pakken.


Ik denk dat ik een klein vermoeden heb wat je bedoelt. De door jou geschetste structuur, maakt die het bijvoorbeeld mogelijk om aan elk liedje een appart bestand met de tekst van dat liedje te koppelen ?
Vervolgens; wat heb ik allemaal nodig om een dergerlijk 'datamodel' (daarvan weet ik dus NIET wat ik me erbij moet voorstellen) aan te kunnen maken. Zou dit inhouden dat ik alles weer moet gaan herschrijven ? Ik heb inerdaad alles met "de hand" gemaakt, maar nog lang niet alles is af (maar wel bijvoorbeeld meer 800 losse bestanden met teksten van alle liedjes). Neem anders eens een kijkje op http://discography.chrisrea.nl

Dit data model klinkt heel intressant, en ik zou er graag nog wat uitleg over horen, maar ik ben toch bang dat dat op dit moment nog een brug (of meer) te ver is... Wat denken jullie; als jullier hier al mee werken kunnen jullie 't vast beter inschatten dan ik.

Blijft mijn vraag toch nog bestaan; is met mijn huidige opzet van de site iets te doen met "if", "then" en "else". Ik zit al drie dagen bijna onafgebroken te spitten op google, maar er is nog niet veel uitgekomen. Ik zou graag een functie willen schrijven waarin ik opgeef:

"if track="237" then url=.../lyrics/237.php and name="naam-van-het-liedje"

Is zoiets mogelijk, of zit ik er volledig naast ??? Natuurlijk ben ik ook zéér geïntresseerd in de mogelijkheden van het genoemde "datamodel"

Bedankt !!!

groet, Bart
Ik ben bang dat als je met if() then else gaat werken je dan dus ook 800 if() then else gaat krijgen en dan is het idee van Jan een stuk eenvoudiger.
Ik heb je site net even bekeken. Ik kan op dit moment niet een "gouden tip" geven, maar ik hou het topic in de gaten.
SanThe schreef op 30.12.2005 00:47
Ik ben bang dat als je met if() then else gaat werken je dan dus ook 800 if() then else gaat krijgen en dan is het idee van Jan een stuk eenvoudiger.


Hallo;

Je zegt wel "eenvoudiger", maar is dat echt eenvoudiger, ook voor een volledige leek ? Ik weet bijvoorbeeld nog niet eens waar ik naar moet zoeken bij google, en of mijn webhost (hostingdiscounter.nl) daar wel voor geschikt is. Dat "datamodel" waar jullie t over hebben, maakt dat gebruik van SQL (waar ik helemaal niets van weet!) en bijvoorbeeld welk programma heb ik nodig om 't te schrijven (ik gebruik nu notepad voor alles)...

ben benieuwd, en - ondanks dat 't iets heel anders is dan waar ik op ahd gehoopt (en waarschijnlijk ook veel meer werk!) - ben ik wele rg nieuwsgierig gemaakt !!!

Groet, Bart
Bart,

hostingdiscounter biedt ondersteuning voor databases zoals MySQL. Mijn eigen website host ik ook daar. Maar het omschrijven van je site zoals hij nu is (statisch) naar een dynamische site (met database) is veel werk.

Reageren