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

Langage PHP Discussion :

utf8 pour des données issues d'une bdd


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut utf8 pour des données issues d'une bdd
    Bonsoir,

    je suis avec une architecture MVC ; le code de la vue est :
    Code PHP : 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
    <?php
    header('Content-type: text/html; charset=UTF-8');
    ?>
    <h1>Les news du site</h1>
     
    <?php
    foreach($news as $n)
    {
    echo '
    <div class="news">
    <h2>'.$n['titre'].'</h2>
    <p>News postée le '.str_replace(' ', ' à ', $n['date_formatee']).'
    par '.$n['auteur'].'</p>
    <p>'.$n['contenu'].'</p>
    </div>';
    }
    ?>
    et mon problème est que les données issues d'une bdd ($n[---]) s'affichent mal :
    Les news du site
    Une premi�re news
    News postée le 30/12/2007 à 18 par vincent1870

    Bienvenue � tous sur ce beau site !

    Bon surf !

    Et une deuxi�me
    News postée le 11/12/2007 à 18 par Arthur

    Hello !
    What happened ?
    Voici le code SQL :
    Code SQL : 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
    CREATE TABLE `news` (
    `id` SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `titre` VARCHAR( 255 ) NOT NULL ,
    `auteur` VARCHAR( 255 ) NOT NULL ,
    `date` DATETIME NOT NULL ,
    `contenu` TEXT NOT NULL
    ) ENGINE = MYISAM ;
    INSERT INTO `news` (
    `id` ,
    `titre` ,
    `auteur` ,
    `date` ,
    `contenu`
    )V
    ALUES (
    NULL , 'Une première news', 'vincent1870', '2007-12-30 18:38:02',
    'Bienvenue à tous sur ce beau site !<br /> <br /> Bon surf ! ;)'
    ), (
    NULL , 'Et une deuxième', 'Arthur', '2007-12-11 18:38:44', 'Hello
    !<br /> What happened ?'
    );
    Que faut-il faire ?

  2. #2
    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
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Oui, avant de poster, j'avais déjà regardé ce tuto, j'en ai tenu compte pour modifier un peu la requête de création de la base (avant la table) :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    CREATE DATABASE `news2` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ;
    CREATE TABLE `news`(
    `id` SMALLINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `titre` VARCHAR( 255 ) NOT NULL ,
    `auteur` VARCHAR( 255 ) NOT NULL ,
    `date` DATETIME NOT NULL ,
    `contenu` TEXT NOT NULL
    ) ENGINE = MYISAM ;
    mais je coince à un autre endroit (dans le modèle) :
    Code PHP : 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
    <?php
    function recuperer_news()
    {
    $news = array();
    $req = mysql_query("SELECT id, auteur, titre,
    DATE_FORMAT(date, '%d/%m/%Y %H') AS date_formatee, contenu
    FROM news
    ORDER BY date DESC");
    echo "modele :";
    while ($data = mysql_fetch_assoc($req))
    {
    echo $data."<br>";
    $news[] = $data;
    }
    return $news;
    }
    ?>

    Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in C:\wamp\www\news\modeles\news.php on line 10

  4. #4
    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
    Par défaut
    date est un mot reservé mysql

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $req = mysql_query("SELECT id, auteur, titre,
    DATE_FORMAT(`date`, '%d/%m/%Y %H') AS date_formatee, contenu
    FROM news
    ORDER BY `date` DESC");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    date est un mot reservé mysql
    Laurent,
    je te l'ai deja dit dans une autre discussion !
    Tu cherches vraiment les ennuis !

    Ce n'est pourtant pas compliqué de nommer les champ :
    news_id
    news_titre
    news_date
    ...

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 493
    Billets dans le blog
    1
    Par défaut
    Oui, j'ai protégé "date", comme tu l'indiques, mais ça ne change pas le message d'erreur...

    Tu cherches vraiment les ennuis !
    Pas vraiment, vu que j'ai juste recopié le code d'un tuto ; évidemment qui vient d'un "concurrent". Mais d'ailleurs, protéger ce mot-clé n'a rien changé...

  7. #7
    Invité
    Invité(e)
    Par défaut
    c'est bien d'apprendre le MVC.
    Tant qu'à faire, ce serait bien aussi de passer à PDO.

    Tu peux aussi regarder mon "système de Nouvelles" (lien ci-dessous)

Discussions similaires

  1. Réponses: 1
    Dernier message: 10/03/2014, 12h02
  2. Réponses: 5
    Dernier message: 06/02/2008, 16h01
  3. [FPDF] Mettre des données issues d'une requête dans l'entête
    Par zoom61 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 30/03/2007, 10h10
  4. [MySQL] Remplir un array() avec des données issues d'une bdd
    Par fichtre! dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/12/2006, 17h03
  5. [MySQL] enregistrer des données CSV dans une BDD
    Par NicoO_O dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 28/11/2006, 23h10

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