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 :

php et mise en forme d'une requête mysql


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Par défaut php et mise en forme d'une requête mysql
    Bonjour à tous,

    voilà, j'ai suivi un tuto pour un système de news, et le résultat est plutot satisfaisant voici mes codes :

    new.php (affiche automatiquement de façon aléatoire une 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
    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
    <!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="fr" >
       <head>
           <title>Bienvenue sur mon site</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
    h1, h3
            {
                text-align:center;
            }
            h3
            {
                background-color:black;
                color:white;
                font-size:0.9em;
                margin-bottom:0px;
            }
            .news p
            {
                background-color:#CCCCCC;
                margin-top:0px;
            }
            .news
            {
                width:70%;
                margin:auto;
            }
            </style>
        </head>
     
        <body>
            <h1> Bienvenue sur mon site !</h1>
            <p> Voici les dernières news </p>
     
            <?php
            mysql_connect("localhost", "root", "");
            mysql_select_db("news");
     
            //ON récupère les 5 dernières news
            $retour = mysql_query('SELECT * FROM news ORDER BY RAND() LIMIT 1');
            while ($donnees = mysql_fetch_array($retour))
            {
              ?>
              <div class="news">
                <h3>
                    <?php echo $donnees['titre']; ?>
                    <em><?php echo date('d/m/Y à h\hi'); ?></em>
               </h3>
     
                <p>
                    <?php
                        $contenu = nl2br(stripslashes($donnees['contenu']));
                        echo $contenu
                    ?>
                </p>    
             </div>
     
            <?php        
            }
            ?>
     
     
        </body>
    </html>
    ensuite on a liste_news.php qui liste les news présentent dans la base de donnée :
    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
    <!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="fr" >
       <head>
           <title>Liste des news</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
              h2, th, td
            {
                text-align:center;
            }
            table
            {
                border-collapse:collapse;
                border:2px solid black;
                margin:auto;
            }
            th, td
            {
                border:1px solid black;
            }
          </style>
       </head>
     
        <body>
          <h2> <a href="rediger_news.php">Ajouter une news</a></h2>
     
          <?php
     
          mysql_connect("localhost", "root", "");
          mysql_select_db("news");
     
          //verif 1 : veut-on poster une news?
          if(isset($_POST['titre']) AND isset($_POST['contenu']))
          {
             $titre = mysql_real_escape_string($_POST['titre']);
             $contenu = mysql_real_escape_string($_POST['contenu']);
     
          //verif si c'est une modif de news ou pas
           if($_POST['id_news'] == 0)
             {
               mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $contenu . "', '" . time() . "')");
     
             }
             else
             {
                //Protection faille sql
                $_POST['$id_news'] = mysql_real_escape_string($_POST['id_news']);
                mysql_query("UPDATE news SET titre='" . $titre . "', contenu = '". $contenu . "', where id = '". $_POST['id_news'] . "'");
             }
          }
     
          //Verif 2 : veut-on supprimer une news?
          if(isset($_GET['supprimer_news']))
          {
             $_GET['supprimer_news'] = mysql_real_escape_string($_GET['supprimer_news']);
             mysql_query("DELETE FROM news WHERE id='". $_GET['supprimer_news'] . "'");
     
          }
          ?>
     
          <table>
             <tr>
                <th>Modifier</th>
                <th>Supprimer</th>
                <th>Titre</th>
                <th>Date</th>
             </tr>
             <?php
             $retour = mysql_query("SELECT * FROM news ORDER BY id DESC");
             while($donnees = mysql_fetch_array($retour))
             {
                ?>
                <tr>
                   <td><?php echo '<a href="rediger_news.php?modifier_news= ' . $donnees['id'] .'">'; ?>Modifier</a></td>
                   <td><?php echo '<a href="liste_news.php?supprimer_news= ' . $donnees['id'] .'">'; ?>Supprimer</a></td>
                   <td><?php echo stripslashes($donnees['titre']); ?></td>
                   <td><?php echo date('d/m/Y'); ?></td>
                </tr>
             <?php
             }
             ?>
          </table>
     
        </body>
    </html>
    et enfin rediger_news.php permettant de rédiger une 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
    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
    <!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="fr" >
       <head>
           <title>Rédiger une news</title>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
            <style type="text/css">
            h3, form
            {
                text-align:center;
            }
            </style>
     
            <h3><a href="liste_news.php"> Retour vers la liste des news</a></h3>
     
            <?php
            mysql_connect("localhost", "root", "");
            mysql_select_db("news");
     
            //si on veut modifier une news
            if(isset($_GET['modifier_news']))
            {
                $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
     
                //Récupération info news correpondante
                $retour = mysql_query("SELECT * FROM news WHERE id='". $_GET['modifier_news'] . "'");
                $donnees = mysql_fetch_array($retour);
     
                //on place titre  et contenu dans une variable simple, $id_news sert à se souvenir que c'est une modif
                $titre = stripslashes($donnees['titre']);
                $contenu = stripslashes($donnees['contenu']);
                $id_news = $donnees['id'];
            }
            else // Alors c'est une création de news
            {
                $titre = "";
                $contenu = "";
                $id_news = 0;
            }
     
            ?>
     
            <form action="liste_news.php" method="post">
                <p> Titre : <input type="text" name="titre" value="<?php echo $titre; ?>" /></p>
                <p>
                    Contenu :<br />
                    <textarea name="contenu" rows="30" cols="60">
                        <?php echo $contenu; ?>
                    </textarea>
                    <br />
     
                    <input type="hidden" name="id_news" value= "<?php echo $id_news; ?>" />
                    <input type="submit" value= "ok" />
     
                </p>
            </form>
     
        </body>
    </html>
    Bon ça fonctionne mais mon problème est le suivant:
    les news à afficher sont en faite des poèmes, qui ont parfois une mise en forme spéciale selon les artistes. les retours à la ligne sont respectés mais pas les mots en gras ou en italique, y-a-t-il une possibilité de garder la mise en forme d'origine ou de la modifier après coût?

  2. #2
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    stripslashes supprime les tag html ce qui permet d'avoir la certitude que le contenu généré par l'utilisateur ne va pas pourrir le code de la page.

    regarde si tu peux pas remplacer stripslashes par tidy ou par du bbcode ou du wikicode.

Discussions similaires

  1. mise en forme d'une requête
    Par rose0729 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/10/2013, 09h46
  2. Mise en forme d'une requête à travers une tâche planifiée
    Par renowep dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/08/2012, 13h00
  3. Mise en forme d'une table avec du PHP
    Par Lorgar dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2011, 15h31
  4. Erreurs lors d'une mise en place d'une requête cron PHP
    Par Pierrick81 dans le forum Langage
    Réponses: 14
    Dernier message: 27/06/2011, 17h40
  5. [AC-2007] Mise en forme d'une requête ouverte
    Par eperat dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/10/2010, 09h12

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