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 :

bdd et formulaire + champs de date


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut bdd et formulaire + champs de date
    Bonjour, j'ai un systeme de news pour un agenda de spectacles, et j'ai un champs de texte à remplir avec la date (d/m/Y) du spectacle et je voudrais tout simplement qu'à l'affichage public les infos soient classées par date du spectacle qui aura lieu et non pas à la date et l'heure à laquelle on a entré l'info !
    Alors voilà j'ai ceci entre autre dans le formulaire :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    <?php
    // CONFIGURATION et Connexion a la BD
    include('news_config-conn.php');
    //-----------------------------------------------------
     
    // AJOUTER une News
    if (isset($_POST['traiter']) && $_POST['traiter']=='AJOUTER')
    {
        $traiter = 'AJOUTER';
        $id_news = 0;
        $titre = '';
        $timestamp = date('d/m/Y');
        $contenu = '';
        $url = '';
        $PHOTOavant = '';
    }
    //-----------------------------------------------------
    // MODIFIER une News
    elseif (isset($_POST['traiter']) && $_POST['traiter']=='MODIFIER')
    {
        $traiter = 'MODIFIER';
        $id_news = mysql_real_escape_string($_POST['id_news']);
        // recuperation des infos de la news correspondante
        $result_modif = mysql_query("SELECT * FROM ".$newstable." WHERE id=".$id_news);
        $data_modif = mysql_fetch_array($result_modif);
        $titre = stripslashes($data_modif['titre']);
        $timestamp = stripslashes($data_modif['timestamp']);
        $contenu = stripslashes($data_modif['contenu']);
         $url = stripslashes($data_modif['url']);
        $PHOTOavant = $data_modif['PHOTO'];
    }
    //-----------------------------------------------------
    // SUPPRIMER une News
    elseif (isset($_POST['traiter']) && $_POST['traiter']=='SUPPRIMER')
    {
        $traiter = 'SUPPRIMER';
        $id_news = mysql_real_escape_string($_POST['id_news']);
        // recuperation des infos de la news correspondante
        $result_suppr = mysql_query("SELECT * FROM ".$newstable." WHERE id=".$id_news);
        $data_suppr = mysql_fetch_array($result_suppr);
        $titre = stripslashes($data_suppr['titre']);
         $timestamp = stripslashes($data_suppr['timestamp']);
        $contenu = stripslashes($data_suppr['contenu']);
        $url = stripslashes($data_suppr['url']);
        $PHOTOavant = $data_suppr['PHOTO'];
    }
    //-----------------------------------------------------
    // sinon retour a la liste
    else
    {
        header('location: news_admin.php');
    }
    //-----------------------------------------------------
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml"  >
    <head>
    <title>Rédiger une news</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" href="news-style.css" />
    <!-- scripts particuliers -->
    <!-- TESTS de VALIDATION du formulaire -->
    <script type="text/javascript"><!--
        function testform(titre,contenu) {
            if(titre.value=="") {
                alert("Ecrivez le titre de la news")
                titre.focus(); return false;
            }
            /*if(contenu.value=="") {
                alert("Ecrivez le contenu de la news")
                contenu.focus(); return false; 
            }*/
            else {
                return true;
            }
        }
    //--></script>
    <!--   fin des scripts    -->
     
    </head>
    <body>
     
    <h3><?php echo $traiter; ?> une News</h3>
    <form action="news_traiter.php" method="post" enctype="multipart/form-data" onsubmit="return testform(this.titre,this.contenu)">
     
    <input type="hidden" name="traiter" value="<?php echo $traiter; ?>" />
    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="hidden" name="PHOTOavant" value="<?php echo $PHOTOavant; ?>" />
    <p>Titre : 
      <textarea name="titre" cols="30" rows="3"><?php echo $titre; ?></textarea>
    </p>
    <p>date : <input type="text" size="30" name="timestamp" value="<?php echo $timestamp; ?>" /></p>
    et pour le traitement de la news :

    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
    <?php
    // CONFIGURATION et Connexion a la BD
    include('news_config-conn.php');
    //-----------------------------------------------------
    // AJOUTER une News
    if (isset($_POST['traiter']) && $_POST['traiter']=='AJOUTER')
    {
        $traiter = 'AJOUTER';
        $titre = mysql_real_escape_string($_POST['titre']);
        $contenu = mysql_real_escape_string($_POST['contenu']);
        $timestamp = mysql_real_escape_string($_POST['timestamp']);
        // on cree une nouvelle entrée dans la table
        mysql_query("INSERT INTO prognewscult VALUES('','".$titre."','".$contenu."','".$timestamp."','')");
        // photo ?
        // recuperation de d id en selectionnant LA DERNIERE fiche cree
        $result_maxid = mysql_query("SELECT MAX(id) AS idmax FROM prognewscult");
        $val_maxid = mysql_fetch_array($result_maxid);
        $id_news = $val_maxid['idmax'];
        include('news_photo.php');
    }
    et dans la base de données :

    mais à l'affichage de news il me les classe pas par date :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     // --------------------------------------
    // Affichage des News
    // --------------------------------------
    // On calcule le numero du premier message qu on prend pour le LIMIT de MySQL
    $premiereNewsAafficher = ($page - 1) * $nombreNewsParPage;
    $resultnews = mysql_query("SELECT * FROM ".$newstable." ORDER BY timestamp DESC LIMIT ".$premiereNewsAafficher.",".$nombreNewsParPage);
    while ($datanews = mysql_fetch_array($resultnews))
    {
    /////
     
    ////////////////////
    echo '<table width="100" border="0" cellspacing="1" cellpadding="1">';
      echo '<tr>';
        echo '<th colspan="2" scope="col">';
        echo '<p></p>';
        echo '<div align="left" class="arial12b">';
            // titre
     
            echo nl2br(stripslashes($datanews['titre']));
     
            // date
            //echo ' le '.date('Y/m/d H:i', $datanews['timestamp']);
        echo '</div>';
        echo '</th>';
        echo '</tr>';
        echo '<tr>';
        echo '<th scope="row">';
            // photo ?
            if ($datanews['PHOTO'] != ''){
            echo '<img src="'.$chemincourt.$datanews['PHOTO'].'" alt="" class="imageG" />';
            }    
        echo '</th>';
        echo '<td>';
            // contenu de la News
            echo '<div class="textnews">';
            echo nl2br(stripslashes($datanews['timestamp']));
            echo '<br>';
            echo nl2br(stripslashes($datanews['contenu']));
            ?>
            <A href="<? echo nl2br(stripslashes($datanews['url'])); ?>">voir leur site</A>
    je ne comprends pas !
    si vous pouvez m'aider

    merci beaucoup
    lolo

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    à la place de "ORDER BY timestamp" tu dois faire un tri sur la colonne de la table qui contient la date où va se passer l'évènement

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut tri dans la table
    Bonjour et merci à toi !
    Justement il n'enregistre pas la date dans ma bdd, il met que des 00000,00...
    pourtant il y a bien $timestamp = date('d/m/Y'); dans le script

    Donc il ne peut pas faire de tri car il ne la prend pas en compte, elles ont toutes la même valeur !

    c'est curieux...

    merci
    loloweb

  4. #4
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    ah d'accord je n'avais pas vu ça

    en fait une date "25/09/2009" n'est pas un timestamp, mais 1253867327 est un timestamp de la date d'aujourd'hui, regarde là : http://php.developpez.com/faq/?page=...date_timestamp
    donc tu dois analyser la date "25/09/2009" avant d'insérer la bonne valeur dans la base de données avec le code qui est là par exemple : http://php.developpez.com/faq/?page=...te_joursemaine

Discussions similaires

  1. docmd Applyfilter sur formulaire (champ Date)
    Par kimha dans le forum VBA Access
    Réponses: 2
    Dernier message: 15/06/2010, 17h13
  2. [Prototype] Vérifier formulaire champ select date
    Par molesqualeux dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 11/01/2010, 09h39
  3. comparer un champ de formulaire avec la date systeme
    Par bachboucha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 05/11/2008, 17h41
  4. Formulaire - champ basé sur une date
    Par JMDEVIL dans le forum Access
    Réponses: 1
    Dernier message: 15/03/2008, 12h42
  5. Réponses: 11
    Dernier message: 02/05/2007, 08h56

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