Beste PHPhulpers,

Ik heb in mijn vorige topic een probleem beschreven..(waarbij ik niet voldoende hulp heb mogen ontvangen ,helaas).. Nu heb ik het probleem ondertussen zelf opgelost en vroeg ik me af of deze code correct is. Hij werkt goed alleen vraag ik me af is hij veilig e.d. en wat zouden jullie anders doen?
Hier komt ie dan:


<?php
if ($artiest->fotogroep == '1')
	{
		echo'
		<a href="/images/artiesten/'.$artiest->foto1.'.jpg" rel="lightbox['.$artiest->naam.']" title="'.$artiest->naam.'">
		<img src="/images/artiesten/'.$artiest->foto1.'.jpg" alt="'.$artiest->foto1.'" width="200" height="200" />';
		
		$dbfoto = array(false,$artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
		$fotos = range(1,5);
		foreach($fotos as $value) 
		{
			if (!empty($dbfoto[$value]) && $value != '1')
			{ 
				echo '<a href="/images/artiesten/'.$dbfoto[$value].'.jpg" rel="lightbox['.$artiest->naam.']"  title="'.$artiest->naam.'">';
			}
		}
		echo'</a>';
	}
	elseif($artiest->fotogroep == '0')
	{
		echo'
		<a href="/images/artiesten/'.$artiest->foto1.'.jpg" rel="lightbox" title="'.$artiest->naam.'">
		<img src="/images/artiesten/'.$artiest->foto1.'.jpg" alt="'.$artiest->foto1.'" width="200" height="200" /></a>';	
	}
?>
Dit heb ik nog niet eerder gezien:
<?php
$dbfoto = array(false,$artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
$fotos = range(1,5);
foreach($fotos as $value)
{
// en dan binnen de foreach $dbfoto[$value] gebruiken.
?>

Heel creatief ;D

waarom loop je niet gelijk door $dbfoto ?

dus:
<?php
foreach($dbfoto as $bestandsnaam)
{
if( $bestandsnaam )
{
...
}
}
?>

als ik die foreach($dbfoto as $bestandsnaam) pak werkt hij namelijk niet.

wat hier de reden van is kwam ik niet geheel uit dus heb ik die array gebruikt(en hierdoor werkt hij wel)


[size=xsmall]Toevoeging op 28/09/2010 22:30:41:[/size]

en jij bent zeer snel met veranderen van je code hahaha

kzal even kijken of dit zal werken:P
Volgens mij werkt dit altijd:
<?php
$array = array(1,2,3,4,5);
foreach( $array as $nummer )
{
echo $nummer;
}
?>

Dus ik denk dat het wel werkt ;P

Een foreach werkt niet als bijvoorbeeld $array geen array is.
dus:


<?php
$dbfoto = array(false,$artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
foreach($dbfoto as $value) 
		{
			if (!empty($value) && $value != '1')
			{
				echo '<a href="/images/artiesten/'.$dbfoto.'.jpg" rel="lightbox['.$artiest->naam.']"  title="'.$artiest->naam.'">';	
			}
		}
?>
Bijna:
<?php
$dbfoto = array($artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
foreach($dbfoto as $bestandsnaam)
{
if ( $bestandsnaam )
{
echo '<a href="/images/artiesten/'.$bestandsnaam.'.jpg" rel="lightbox['.$artiest->naam.']" title="'.$artiest->naam.'">';
}
}
?>

Er zit trouwens een punt tussen foto3 en foto4 moet dat geen komma zijn?
heb deze code geprobeert .. allen krijg ik als ik op de foto klik..
Foto 1 van 3 terwijl er maar in totaal 2 zijn.(2e foto kan ik overigens niet zien dus dit is een foto die niet "bestaat" blijkaar.


[size=xsmall]Toevoeging op 28/09/2010 22:45:37:[/size]

Martijn B op 28/09/2010 22:41:33

Bijna:
<?php
$dbfoto = array($artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
foreach($dbfoto as $bestandsnaam)
{
if ( $bestandsnaam )
{
echo '<a href="/images/artiesten/'.$bestandsnaam.'.jpg" rel="lightbox['.$artiest->naam.']" title="'.$artiest->naam.'">';
}
}
?>

Er zit trouwens een punt tussen foto3 en foto4 moet dat geen komma zijn?


Foto 1 moet ie niet weergeven omdat deze erboven al woord weergegeven om de "groep" te vormen onder 1 foto(effect van lightbox).
En of je $bestandsnaam gebruikt of $value lijkt me niet veel uit te maken.

en de punt moest inderdaad een komma zijn.


na in broncode te hebben gekeken krijg ik als antwoord :
/images/artiesten/Array.jpg

logisch aangezien je geen nummer in de Array selecteerd(lijkt mij)
En als je mijn aangepast code gebruikt?


De variabele $dbfoto wordt nergens anders gebruikt? Hierin zit namelijk 1 waarde minder in.

edit:

Ok foto 1 overslaan kun je aan de hand van de sleutel van de array doen:

<?php
$dbfoto = array($artiest->foto1,$artiest->foto2,$artiest->foto3.$artiest->foto4,$artiest->foto5);
foreach($dbfoto as $sleutel => $bestandsnaam)
{
if ( $sleutel && $bestandsnaam )
{
echo '<a href="/images/artiesten/'.$bestandsnaam.'.jpg" rel="lightbox['.$artiest->naam.']" title="'.$artiest->naam.'">';
}
}
?>

De eerste sleutel is altijd 0 of wel false.

Waarom niet $artiest->fotos[1] ?
Die punt in je array() moet een komma zijn.
... ,$artiest->foto3.$artiest->foto4, ...

Getallen horen niet binnen quotes.
if ($artiest->fotogroep == '1')
Pim de Haan op 28/09/2010 22:47:05

Waarom niet $artiest->fotos[1] ?



omdat in mijn db de tabellen foto1 , foto2, foto3, foto4, foto5 zijn?

Reageren