IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Affichage image programmé depuis SQL [Débutant(e)]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut [SQL] Affichage image programmé depuis SQL
    Bonjour @ tous,

    Je souhaiterais afficher une image depuis une table SQL ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE TABLE `theme` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `periode_debut` date NOT NULL DEFAULT '0000-00-00',
      `periode_fin` date NOT NULL DEFAULT '0000-00-00',
      `url` text NOT NULL,
      `alt` text NOT NULL,
      KEY `id` (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;
    Dans ma page PHP, j'aimerais qu'elle affiche une image à une URL précise pendant le jour ou la période depuis la BDD sinon elle affiche l'image "logo.gif" par défaut.

    Je recherche un code PHP bien précis, j'ai tenté un code mais il est trop complexe et ne marche pas ! on m'avait communiqué une solution une fois, mais je l'ai perdu ;(
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <?php include("connect.php"); ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Test</title>
    </head>
     
    <body>
    <?php
    if($periode_debut && $periode_fin)== echo date("Y-m-d");
    {
    echo "<img src=".$url." alt=".$alt." width="185" height="70" border="1">";
    }
    else
    {
    echo "<img src="img/fond.png" alt="" width="185" height="70" border="1">";
    }
    ?>
    </body>
    </html>
    <?php mysql_close(); ?>

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Si j'étais toi je le ferai dans mon select, tu peux faire des comparaisons de date dans ta requete MYSQL.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Euh, je suis newbie, je ne comprends pas trop !

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    En faite tu peux faire une comparaison de DATE directement dans ton SELECT ce qui t'evitera des manip en PHP.

    SELECT * FROM images WHERE date >= '2007-05-05';
    SELECT * FROM images WHERE date >= '2007-05-05' and date <='2007-09-05';

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par batataw Voir le message
    En faite tu peux faire une comparaison de DATE directement dans ton SELECT ce qui t'evitera des manip en PHP.

    SELECT * FROM images WHERE date >= '2007-05-05';
    SELECT * FROM images WHERE date >= '2007-05-05' and date <='2007-09-05';
    C'est pas possible de faire ça car j'ai 2 requêtes : "periode_debut" et "periode_fin"

    Je me rappelle que quelqu'un avait fait la solution en 4-5 lignes de PHP seulement, sans utiliser de requête SQL particulière (à part la connexion dessus forcément )

    Je retente ça mais ça marche pas ! quand je suis hors des périodes programmées, il m'affiche toujours l'image par défaut (logo_nc.gif)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    if ($row_theme['periode_debut'] && $row_theme['periode_fin'] == date("Y-m-d-"))
    {
    print "<img src=".$row_theme['url_img']." width=\"225\" height=\"82\" alt=".$row_theme['alt']." />";
    }
    else
    {
    print "<img src=\"img/logo_nc.gif\" width=\"225\" height=\"82\" alt=\"\" />";
    }
    ?>

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    attention que dans ton code tu n'es pas l'erreur de ta citation de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    date("Y-m-d-") // un - en trop apres le 'd'

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ah bein LOL, ça marche !

    Forcément j'ai fait une erreur aussi basique !

    Merci "MicroAlexx"

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Je ne comprends pas comment un ET logic entre 2 dates peut marcher, pour
    faire ce que tu veux 8/

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par batataw Voir le message
    Je ne comprends pas comment un ET logic entre 2 dates peut marcher, pour
    faire ce que tu veux 8/
    Bein pour le coup moi non plus, mais ça fonctionne !

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Points : 49
    Points
    49
    Par défaut
    Tous simplement parce que php compare 2 chaines, et non pas 2 date

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] image generée depuis sql
    Par Kagami dans le forum Débuter
    Réponses: 1
    Dernier message: 13/02/2014, 12h05
  2. Réponses: 2
    Dernier message: 19/06/2013, 09h34
  3. [SQL] affichage d'une requête sql dans un tableau
    Par benvegu dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2008, 14h01
  4. [SQL] affichage d'une requete SQL avec un echo (donnée unique)
    Par khamett dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/10/2007, 20h03
  5. [SQL] Affichage d'une requete SQL
    Par djinko dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 22/10/2006, 12h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo