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)

@Arjan:
Jouw voorbeeld werkt perfect !! heel erg bedankt !!


Ik ben de afgelopen weken flink aan de slag gegaan met "sql" ;-)) Ik heb nu de discography even terzijde gelegd (ik wil eerst wat ervaring opdoen met andere kleinere 'project-jes' voordat ik me definitief vastleg in een definitief format voor de discography).

Nu ben ik bezig met een pagina waarop bezoekers zelf (kranten)artikelen kunnen toevoegen. Aangezien de volgende vraag voor mijn gevoel binnen het zelfde subject past, plaats ik hem maar in dezelfde topic.

Als zo'n article wordt weergegeven zijn er een aantal gegevens die wel of niet aanwezig kunnen zijn (wel of geen auteur, wel of geen afbeelding erbij, etc.). Nu wil ik op een eenvoudige manier het volgende doen.
Als er in de kolom "image" 'iets' is ingevuld dat moet het volgende worden weergegeven:

echo"<img id=\"picture_border\" src=\"http://www.chrisrea.nl/interviews/".$record['image']."\"; alt=\"".$record['title']."\">";

als het betreffende veld in die kolom leeg is, moet er gewoon helemaal niets worden weergegeven, dus als volgt (op mijn eigen manier weergegeven ;-):

if 'image' is not '0' then echo 'blablabla' else echo ''


Wie kan mij hiermee helpen ?!? Alvast bedankt, met vriendelijke groet, Bart


Hallo Bart,

stel dat het imageveld niet wordt ingevuld, dan betekent dat dat er een "lege string" wordt verzonden. Dat kun je bijvoorbeeld zo testen:

if ($_POST['image'] == '') {
// echo "niets ingevuld"
}

of zo:

if (empty ($_POST['image'])) {
// echo "niets ingevuld"
}
Hallo Jan;

Bedankt voor je reactie!
kan ik dat gewoon binnen de bestaande uitvoer zetten ?
Ik heb nu dus:
-------------------------------------------
if(isset($_GET['article_id']))
{
$article_id = mysql_real_escape_string($_GET['article_id']);
$query = "SELECT * FROM main_articles WHERE article_id = ".$article_id."";
$resultaat = mysql_query($query) or die(mysql_error());
$aantal = mysql_num_rows($resultaat);

if($aantal == 1)
{
while($record = mysql_fetch_array($resultaat))
{
echo"<p class=\"text_2_left\">".$record['title']."<br>";
echo"<p class=\"text_3_left\"><b>".$record['subtitle']."</b><br><br>";
echo"<font class=\"text_4_left\">Source: ".$record['source']."</font><br>";
echo"<font class=\"text_4_left\">Date: ".$record['date']."</font><br>";
echo"<font class=\"text_4_left\">Author: ".$record['author']."</font><br>";
echo"<img id=\"picture_border\" src=\"http://www.chrisrea.nl/interviews/".$record['image']."\"; alt=\"".$record['title']."\">";
echo"<p class=\"text_3_left\">".$record['content']."<br><br>";
echo"<p class=\"text_4_left\" style=\"margin-left:75px\">".$record['copyright']."</b><br><br>";

}

}else{echo"<br><br><br><br><p class=\"text_3\">Article is unavailable<br>";}
}else{echo"<br><br><br><br><p class=\"text_3\">You must include a page-id<br>";}
------------------------------------------------

en ik wil bij meerdere velden (o.a. "author" , "image", etc.) de mogelijkheid hebben ze helemaal weg te laten. Kan ik dan i.p.v.
"echo"<p>Author: ".$record['author']."</p><br>"; "

gewoon zetten:

if ($_POST['author'] == '') {
// echo"<p>Author: ".$record['author']."</p><br>";
}


???

Het is dus de bedoeling dat 'ie dan dus die hele echo... regel weglaat (ook het voorvoegsel "Author: ..." dus!) en dan ook geen witregel daar zet. Alles moet dus gewoon wegblijven als er geen entry is in die cel ...

Met vriendelijke groet, Bart
Jan Koehoorn schreef op 24.01.2006 10:48
Hallo Bart,

stel dat het imageveld niet wordt ingevuld, dan betekent dat dat er een "lege string" wordt verzonden. Dat kun je bijvoorbeeld zo testen:

if ($_POST['image'] == '') {
// echo "niets ingevuld"
}

of zo:

if (empty ($_POST['image'])) {
// echo "niets ingevuld"
}


Ik heb beide mogelijkheden geprobeerd, en ook al bijvoorbeeld "if($image == ){" maar alles zonder resultaat... :-(( Ik hoop dat ik duidelijk ben geweest in wat ik graag zou willen;

als een veld is ingevuld in de tabel moet worden weergegeven:
-------------------------------------------------
echo"<img src=\"../interviews/".$record['image']."\">";

of bijboorbeeld:

echo"<p>De auteur is:".$record['author']."<br>";
------------------------------------------------

en als het betreffende veld in de tabel leeg is moet er gewoon het volgende worden neergezet:

echo"";

Ik hoop dat dit (nog) duidelijker is en dat iemand mij verder kan en wil helpen, alvast bedankt !
groet, Bart


Het is opgelost (tenminste; het werkt!)

Ik heb het volgende toegevoegd, en dat werkt:

/*** Wel of geen afbeelding ***/
if ($record['image']=="") {}else{
echo"<br><img id=\"picture_border\" src=\"http://www.chrisrea.nl/interviews/".$record['image']."\"; alt=\"".$record['title']."\"><br>";}
/******************************/

Iedereen bedankt voor het meedenken !!

Groet, Bart

Reageren