elke dag een nieuwe foto

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lissy Pixel

Lissy Pixel

03/06/2010 13:55:06
Quote Anchor link
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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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>';
    }
}

?>
Gewijzigd op 03/06/2010 13:59:22 door Lissy Pixel
 
PHP hulp

PHP hulp

21/11/2024 12:59:02
 
Johan K

Johan K

04/06/2010 21:40:22
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    $sql
= "SELECT `image`, `text` FROM `foto` WHERE id = '" . rand( 1, 100 ) . "'";
    $rlt = mysql_query( $sql );
    
    if( !$rlt ){
        echo 'Query mislukt';
    }

?>
Gewijzigd op 04/06/2010 21:46:27 door Johan K
 
Jan Koehoorn

Jan Koehoorn

04/06/2010 21:48:22
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    $sql
= "
        SELECT image, tekst
        FROM foto
        ORDER BY RAND()
        LIMIT 1
    "
;
?>

Uiteraard controleer je of je query ook echt gelukt is.
 
Johan K

Johan K

04/06/2010 22:17:06
Quote Anchor link
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. :-)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.