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 :

Accent dans le mois / date [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut Accent dans le mois / date
    Bonjour,

    je cherche à effectuer une recherche sur des tranches de date dans ma base SQL, ce qui fonctionne (je ne sais pas si mon code est "propre", je débute...)
    ce qui ne fonctionne pas c'est les accents : *
    exemple=> jeudi 1er décembre s'affiche : jeudi 01 d�cembre
    Comment l'afficher en français avec les accents (variable $date_vue ci-dessous) ?
    Merci de votre aide.

    mon code PHP :

    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
    94
    95
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>MON SITE</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <body>
     
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <?php
     
    // On ne vérifie pas l'année !
    if(isset($_POST['annee'])) $annee=$_POST['annee'];
    else $annee="2011";
     
    // création de la date de départ au format date MySQL
    $date_depart=$annee.'-'.$_POST['date2'].'-'.$_POST['date1'];
    echo '<p>'.'</p>';
    echo 'Du :  '.'<b>'.$date_depart.'      '.'</b>';
     
    // création de la date de fin au format date MySQL
    $date_fin=$annee.'-'.$_POST['date4'].'-'.$_POST['date3'];
    echo 'Au : '.'<b>'.$date_fin.'</b>';
    echo '<p>'.'</p>';
     
    // connexion à la base
    $db = mysql_connect('sql.free.fr', 'user', 'mdp')  or die('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db('nom_de_la_base',$db)  or die('Erreur de selection '.mysql_error());
    mysql_query("SET NAMES latin1");
    $select2 = "SELECT type_evenement, type_etab, secteur, heure, tarif, lieu, nom, description, date_ev 
    FROM evenement WHERE date_ev BETWEEN '&date_depart' AND '$date_fin' 
    AND type_evenement LIKE '".$_POST['evenement1']."' AND secteur LIKE '".$_POST['secteur']."'";
    $result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    //On vérifie que la table contient quelque chose
    if
    (mysql_num_rows($result) == 0)
    {
    echo '<p>'.'<b>'.'Aucun &eacute;v&egrave;nement ! '.'</b>'.'</p>'.
    '<p>'.'</p>'.
    '<br>'.'</br>'.
    '<a href="'. $_SERVER['HTTP_REFERER'] .'">Retour</a>'."</div>";
    }
     
    //Si il y a des entrées	  
    else
    {
     
    //On fait une boucle pour sortir toutes les entrées
    while($affiche = mysql_fetch_array($result))
     {
     
     //On remet la date au format français
    setlocale (LC_TIME, 'fr_FR');
    $date_affiche = $affiche["date_ev"];
    $date_vue = strftime("%A %d %B",strtotime("$date_affiche"));
     //On affiche les entrées
     
    echo '<p>'.'</p>';
    echo '<b>'."<div class='recherche'>".$affiche["type_evenement"]."   ".'</b>'."</div>";
    echo '<p>'.'</p>';
    echo "<div class='recherche'>"."    > ".$affiche["type_etab"]."   "."</div>";
    echo '<b>'."<div class='recherche'>"."    > ".$date_vue."   ".'</b>'."</div>";
    echo "<div class='recherche'>"."    > ".$affiche["secteur"]."   "."</div>";
    echo "<div class='recherche'>"."Début à : ".$affiche["heure"]."   "."</div>";
    echo "<div class='recherche'>"."  Tarif : ".$affiche["tarif"]."   "."</div>";
    echo "<div class='recherche'>"." où ? ".$affiche["lieu"]."   "."</div>";
    echo '<b>'."<div class='recherche'>"." qui ? ".$affiche["nom"]."   ".'</b>'."</div>";
    echo '<p>'.'</p>';
    echo "<div class='recherche'>"."      < ".$affiche["description"]."   "."</div>";
    echo '<br>'.'</br>';
     
    //On ferme la boucle while
     }
     
    //on ferme le else
    echo '<a href="'. $_SERVER['HTTP_REFERER'] .'">Retour</a>'."</div>";
    }
     
    // Fermeture de la connexion à la base de données
    mysql_close();		
    ?>
     
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
     
    </body>
     
    </html>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    pourquoi : SET NAMES latin1 si content="text/html;charset=utf-8" ?

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale (LC_TIME, 'fr_FR.UTF8');
    Par contre je vois que tu fais la connexion à ta bdd en LATIN1 alors que tout le reste est en UTF8.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre habitué Avatar de fazpedro
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 503
    Points : 127
    Points
    127
    Par défaut Accent dans le mois / date
    C'est bon, c'est résolu, merci encore pour votre réponse rapide.
    en fait il suffisait de changer en utf-8...

    code corrigé :
    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
    94
    95
    96
    97
    98
    99
    100
    101
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>FAZ A CAEN</title>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
     
    <body>
     
    <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut -->
     
    <?php
     
    // On ne vérifie pas l'année !
    if(isset($_POST['annee'])) $annee=$_POST['annee'];
    else $annee="2011";
     
    // création de la date de départ au format date MySQL
    $date_depart=$annee.'-'.$_POST['date2'].'-'.$_POST['date1'];
     
    // création de la date de fin au format date MySQL
    $date_fin=$annee.'-'.$_POST['date4'].'-'.$_POST['date3'];
     
    //On remet les dates au format français
    setlocale (LC_TIME, 'fr_FR.UTF8');
    $date_vue_depart = strftime("%A %d %B",strtotime("$date_depart"));
    $date_vue_fin = strftime("%A %d %B",strtotime("$date_fin"));
     
    // Affichage de la date de départ et de fin en français
    echo '<p>'.'</p>';
    echo 'Du :  '.'<b>'.$date_vue_depart.'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
    echo 'Au : '.'<b>'.$date_vue_fin.'</b>';
    echo '<p>'.'</p>';
     
    // connexion à la base
    $db = mysql_connect('sql.free.fr', 'user', 'mdp')  or die('Erreur de connexion '.mysql_error());
     
    // sélection de la base  
    mysql_select_db('nom_de_la_base',$db)  or die('Erreur de selection '.mysql_error());
    // mysql_query("SET NAMES latin1");
    $select2 = "SELECT type_evenement, type_etab, secteur, heure, tarif, lieu, nom, description, date_ev 
    FROM evenement WHERE date_ev BETWEEN '&date_depart' AND '$date_fin' 
    AND type_evenement LIKE '".$_POST['evenement1']."' AND secteur LIKE '".$_POST['secteur']."'";
    $result = mysql_query($select2) or die ('Erreur : '.mysql_error() );
    $total = mysql_num_rows($result);
     
    //On vérifie que la table contient quelque chose
    if
    (mysql_num_rows($result) == 0)
    {
    echo '<p>'.'<b>'.'Aucun &eacute;v&egrave;nement ! '.'</b>'.'</p>'.
    '<p>'.'</p>'.
    '<br>'.'</br>'.
    '<a href="'. $_SERVER['HTTP_REFERER'] .'">Retour</a>'."</div>";
    }
     
    //Si il y a des entrées	  
    else
    {
     
    //On fait une boucle pour sortir toutes les entrées
    while($affiche = mysql_fetch_array($result))
     {
    //On remet la date au format français
    setlocale (LC_TIME, 'fr_FR.UTF8');
    $date_affiche = $affiche["date_ev"];
    $date_vue = strftime("%A %d %B",strtotime("$date_affiche"));
     
     //On affiche les entrées
    echo '<p>'.'</p>';
    echo '<b>'."<div class='recherche'>".$affiche["type_evenement"]."   ".'</b>'."</div>";
    echo '<p>'.'</p>';
    echo "<div class='recherche'>"."    > ".$affiche["type_etab"]."   "."</div>";
    echo '<b>'."<div class='recherche'>"."    > ".$date_vue."   ".'</b>'."</div>";
    echo "<div class='recherche'>"."    > ".$affiche["secteur"]."   "."</div>";
    echo "<div class='recherche'>"."Début à : ".$affiche["heure"]."   "."</div>";
    echo "<div class='recherche'>"."  Tarif : ".$affiche["tarif"]."   "."</div>";
    echo "<div class='recherche'>"." où ? ".$affiche["lieu"]."   "."</div>";
    echo '<b>'."<div class='recherche'>"." qui ? ".$affiche["nom"]."   ".'</b>'."</div>";
    echo '<p>'.'</p>';
    echo "<div class='recherche'>"."      < ".$affiche["description"]."   "."</div>";
    echo '<br>'.'</br>';
     
    //On ferme la boucle while
     }
     
    //on ferme le else
    echo '<a href="'. $_SERVER['HTTP_REFERER'] .'">Retour</a>'."</div>";
    }
     
    // Fermeture de la connexion à la base de données
    mysql_close();		
    ?>
     
    <?php include('bas_de_page.php'); ?> <!-- insère le bas de page  -->
     
    </body>
     
    </html>

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

Discussions similaires

  1. [Dates] Nombre de semaines dans le mois
    Par Prosis dans le forum Langage
    Réponses: 7
    Dernier message: 05/03/2016, 11h10
  2. [Dates] Nombre de mercredis dans un mois
    Par jgoguel dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2007, 09h07
  3. Réponses: 3
    Dernier message: 11/01/2007, 15h44
  4. pb date : nb jours dans un mois
    Par clairette dans le forum Langage
    Réponses: 2
    Dernier message: 26/06/2006, 15h30
  5. [Dates] Calculer le nombre de jours dans le mois suivant...
    Par Life Hunter dans le forum Langage
    Réponses: 5
    Dernier message: 14/03/2006, 00h01

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