Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme tuto news

J'aimerais + de choses

    26 novembre 2005 à 22:16:07

    Bonjour, bravo pour le site !
    Enfaite j'aurais une question. :D J'ai fais le tuto news de mateo ! il marche super bien. Mais j'aimerais ajouter enfaite 7 autres champs. Mais la sa marche plus. Quand j'ecris dans le formulaire. je met valider. ca affiche la page liste_news.php mais sans qui se passe rien du tout ! L'information ne s'ecrit pasdans la DB !!


    Voici la partie php de index.php


    <?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 id');
    while ($donnees = mysql_fetch_array($retour))
    {
    ?>

    <div class="news">
        <h3>
            <?php echo nl2br(stripslashes($donnees['titre'])); ?>
            <?php echo nl2br(stripslashes($donnees['auteur'])); ?>
                    <?php echo nl2br(stripslashes($donnees['pages'])); ?>
                    <?php echo nl2br(stripslashes($donnees['chapitres'])); ?>
                    <?php echo nl2br(stripslashes($donnees['date'])); ?>
                    <?php echo nl2br(stripslashes($donnees['presentation'])); ?>
                    <?php echo nl2br(stripslashes($donnees['commentaire'])); ?>
        </h3>
    </div>
    <?php
    } // Fin de la boucle des news
    ?>


    Maintenant de ma page rediger_news.php
    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("news");

    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
    {
        // On récupère les infos de la correspondante
        $retour = mysql_query('SELECT * FROM news WHERE id=' . $_GET['modifier_news']);
        $donnees = mysql_fetch_array($retour);
       
        // On place le titre et le contenu dans des variables simples
        $titre = $donnees['titre'];
        $auteur = $donnees['auteur'];
        $pages = $donnees['pages'];
        $chapitres = $donnees['chapitres'];
        $date = $donnees['date'];
        $presentation = $donnees['presentation'];
        $commentaire = $donnees['commentaire'];
        $id_livres = $donnees['id']; // Cette variable va servir pour se souvenir que c'est une modification
    }
    else // C'est qu'on rédige une nouvelle news
    {
        // Les variables $titre et $contenu sont vides, puisque c'est une nouvelle news
        $titre = '';
        $auteur = '';
        $pages = '';
        $chapitres = '';
        $date = '';
        $presentation = '';
        $commentaire = '';
        $id_livres = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>

    <form action="liste_news.php" method="post">
    <p>Titre : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>

    <p>Auteur : <input type="text" size="30" name="auteur" value="<?php echo $auteur; ?>" /></p>

    <p>Nombre de pages : <input type="text" size="30" name="pages" value="<?php echo $pages; ?>" /></p>
       
    <p>Les chapitres :<br />
        <textarea name="chapitres" cols="50" rows="20">
        <?php echo $chapitres; ?>
        </textarea><br /></p>
       
    <p>Date de publication : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>

    <p>Presentation :<br />
        <textarea name="Presentation" cols="100" rows="15">
        <?php echo $Presentation; ?>
        </textarea><br /></p>
           
    <p>Commentaire :<br />
        <textarea name="Commentaire" cols="100" rows="15">
        <?php echo $Commentaire; ?>
        </textarea><br /></p>
       
        <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
        <input type="submit" value="Envoyer" />
    </p>
    </form>


    Maintenant de liste_news.php

    <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("news");

    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------

    if (isset($_POST['titre']) AND isset($_POST['auteur']) AND isset($_POST['pages']) AND isset($_POST['chapitres']) AND isset($_POST['date']) AND isset($_POST['presentation']) AND isset($_POST['commentaire']))
    {
        $titre = addslashes($_POST['titre']);
        $auteur = addslashes($_POST['auteur']);
        $pages = addslashes($_POST['pages']);
        $chapitres = addslashes($_POST['chapitres']);
        $date = addslashes($_POST['date']);
        $presentation = addslashes($_POST['presentation']);
            $commentaire = addslashes($_POST['commentaire']);
        // On vérifie si c'est une modification de news ou pas
        if ($_POST['id_news'] == 0)
        {
            // Ce n'est pas une modification, on crée une nouvelle entrée dans la table
            mysql_query("INSERT INTO news VALUES('', '" . $titre . "', '" . $auteur . "', '" . $pages . "', '" . $chapitres . "', '" . $date . "', '" . $presentation . "', '" . $commentaire . "')");
        }
        else
        {
            // C'est une modification, on met juste à jour le titre et le contenu
            mysql_query("UPDATE news SET titre='" . $titre . "', auteur='" . $auteur . "', pages='" . $pages . "', chapitres='" . $chapitres . "', date='" . $date . "', presentation='" . $presentation . "', commentaire='" . $commentaire . "' WHERE id=" . $_POST['id_news']);
        }
    }


    //--------------------------------------------------------
    // Vérification 2 : est-ce qu'on veut supprimer une news ?
    //--------------------------------------------------------

    if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
    {
        // Alors on supprime la news correspondante
        mysql_query('DELETE FROM news WHERE id=' . $_GET['supprimer_news']);
    }
    ?>

    <table><tr>
    <th>Modifier</th>
    <th>Supprimer</th>
    <th>Titre</th>
    </tr>

    <?php
    $retour = mysql_query('SELECT * FROM news ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>

    <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>
    </tr>

    <?php
    } // Fin de la boucle qui liste les news
    ?>
    </table>


    Es ce qu'il y a un truc qui cloche ? Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2005 à 23:04:31

      tu a penser a changer la structure de ta BDD ?
      et pis :
      <?php echo nl2br(stripslashes($donnees['titre'])); ?>
      <?php echo nl2br(stripslashes($donnees['auteur'])); ?>
      <?php echo nl2br(stripslashes($donnees['pages'])); ?>
      <?php echo nl2br(stripslashes($donnees['chapitres'])); ?>
      <?php echo nl2br(stripslashes($donnees['date'])); ?>
      <?php echo nl2br(stripslashes($donnees['presentation'])); ?>
      <?php echo nl2br(stripslashes($donnees['commentaire'])); ?>

      c'est un peu lourd ...
      tu peu enlever les ?> <?php à chaque fois qu'ils se touche ...
      • Partager sur Facebook
      • Partager sur Twitter
        26 novembre 2005 à 23:09:53

        Il m'est avis que dans ta condition là
        if (isset($_POST['titre']) AND isset($_POST['auteur']) AND isset($_POST['pages']) AND isset($_POST['chapitres']) AND isset($_POST['date']) AND isset($_POST['presentation']) AND isset($_POST['commentaire']))

        Tout n'est pas vérifié puisque le champ de ton formulaire c'est Presentation et que te lui demandes $_POST['presentation'] d'où problème.
        :)
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2005 à 23:58:12

          Zne => oui j'ai verifier ma db. Ok pour les <? J'y ai pas pensé c'est telement evidant :lol:

          Macleto => J'ai enlever les Majuscules. mais cela ne marche tjr pas :( Vous n'avez pas la solution !?

          (merci de votre aide Zne, Macleto)
          • Partager sur Facebook
          • Partager sur Twitter
            27 novembre 2005 à 14:55:59

            Le problème doit venir des majuscules de ta page rediger_news.php car le nom de certains input sont Presentation mais dans liste_news.php il récupere presentation et non pas Presentation
            • Partager sur Facebook
            • Partager sur Twitter

            Probleme tuto news

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown