Ben bezig om automatisch uit een database elke dag een foto te laten verschijnen. Alles onder elkaar gaat prima kijk maar:
http://www.plusbeauspup.com/database/index.php

Maar niet helemaal wat ik wens. Ik heb geen idee hoe dit wel te krijgen.
Wanneer ik alles handmatig codeer en dus elke dag toevoeg dan lukt het wel want dat vind je http://www.plusbeauspup.com/ en dan de link dagelijkse foto.

Om alles onder elkaar te krijgen heb ik deze dit hieronder gedaan.
Wie wil me op weg helpen?


<?php
// de functie om alles op te halen
function display()
{
	// Plaatje bovenaan 
	echo '<p align="center"><img border="0" src="../images/ldcamera.gif" alt="plusbeaus"> &nbsp; <font color="#6c5852"><b>Foto van de Dag voor vandaag ' . date("d-m-Y") . ' is</b></font> &nbsp; <img border="0" src="../images/ldcamera.gif" alt="plusbeaus">';
	
	//$sql=mysql_query("Select * From foto Where id=1");
	$sql=mysql_query("SELECT * FROM foto ORDER BY DATE_FORMAT(datum, '%d-%m-%Y') DESC");
	
	while ($record=mysql_fetch_array($sql))
	{   // De foto
		echo '<br /><center>' . $record['image'] . '</center>';
		// De tekst
		echo '<p align="center">' . $record['tekst'] . '</p>';
	}
}
?>
<?php
// de functie om alles op te halen
function display()
{
// Plaatje bovenaan
echo '<p align="center"><img border="0" src="../images/ldcamera.gif" alt="plusbeaus"> &nbsp; <font color="#6c5852"><b>Foto van de Dag voor vandaag ' . date("d-m-Y") . ' is</b></font> &nbsp; <img border="0" src="../images/ldcamera.gif" alt="plusbeaus">';

//$sql=mysql_query("Select * From foto Where id=1");
// __ Dit is geen sql, maar een result. :)
// |
// v
$sql=mysql_query("SELECT * FROM foto ORDER BY DATE_FORMAT(datum, '%d-%m-%Y') DESC");

while ($record=mysql_fetch_array($sql))
{
$arr[] = array( $record['image'], $record['tekst'] );
}

list( $plaatje, $text ) = array_rand( $arr );

echo '<br /><center>' . $plaatje . '</center><p align="center">' . $text . </p>';
}
?>

Hierboven is een gemakkelijke manier, alleen niet de beste. Ik weet niet hoe jouw tabel in jouw database eruit ziet, maar je zou met ID's moeten werken, en gewoon een random ID selecteren.

<?php
$sql = "SELECT `image`, `text` FROM `foto` WHERE id = '" . rand( 1, 100 ) . "'";
$rlt = mysql_query( $sql );

if( !$rlt ){
echo 'Query mislukt';
}
?>
Het is niet nodig om eerst alle plaatjes uit je database te halen, in een array te stoppen, en dan willekeurig 1 eruit te halen. Je doet gewoon:
<?php
$sql = "
SELECT image, tekst
FROM foto
ORDER BY RAND()
LIMIT 1
";
?>
Uiteraard controleer je of je query ook echt gelukt is.
Wat ik al zei, het was een gemakkelijke manier, jouw query is een stuk beter maar persoonlijk werk ik liever niet met interne functies van *SQL.
Dit zou eigenlijk gewoon gecached moeten worden, aangezien het per dag veranderd moet worden, scheelt weer een query per request. :-)


Reageren