Impossible d'écrire sur ma BDD

Résolu
Salut,

J'ai crée un site avec des pages d'administrations pour gérer le contenu des pages du-dit site, mais j'ai un problème d'écriture sur ma BDD. En effet, j'avais jusqu'à présent quelques pages d'administrations qui marchaient à merveilles, mais hier j'en ai fait 4 / 5 autres en copiant/collant les codes des autres pages, en changeant bien évidemment les noms des BDD (que j'ai crées par la même occasion ;-) ), mais impossible d'écrire sur les BDD à partir de ces nouvelles pages d'admin. J'ai pourtant refait les pages, rererererevérifié mon code trois bonnes douzaines de fois (ou presque :p),... mais rien y fait. Et il n'y a aucun message d'erreur. Je poste mon code sous peu. En attendant vos réponse, merci à ceux qui pourront m'aider.

--
Merci d'avance pour vos réponses !
;-)
Configuration: Windows Vista
Firefox 3.0.4

6 réponses

  1. En fait ca ne m'écrit jamais rien !
    1. Trouvé !
      En fait j'avais recopier le INSERT INTO avec les même champs alors que j'en avais supprimer dans la BDD... forcement y'a un bug !
  2. a la place de ca :
    mysql_query("INSERT INTO pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");

    tu peux faire comme ca :
    $query = "INSERT INTO pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')";

    $result = mysql_query($query);
    if (!$result) {
    $message = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
    }

    -------------------------------------------
    Tu fais la même chose avec toutes tes requêtes.
    C'est un peu plus long mais cela te permettra de repérer d'éventuelles erreurs.
    1. Ben ca me fait toujours rien... !!!
    2. @MHH225Et faut que je mette ca sur toute les requêtes ? ca plante quand je fais ca.
  3. Gères les erreurs de tes requêtes.
    Voici un exemple:

    $query = "INSERT INTO ....";

    $result = mysql_query($query);
    if (!$result) {
    $message = 'Requête invalide : ' . mysql_error() . "\n";
    $message .= 'Requête complète : ' . $query;
    die($message);
    }
    1. euh... je le mets où :-( ? Je connais juste tout le blabla autour des variables en php (déclaration, écriture,..)
  4. Bonsoir,
    tu ne reçois pas de message d'erreur?
    1. Non aucun et c'est ca que je trouve bizarre. Je ne comprends vraiment pas...
  5. Et celui de celle qui marche :

    <div id="corps">

    <h2>Liste des news</h2>

    <h3><a href="noel.php#ajouter_news">Ajouter une news</a></h3>
    <h3><a href="../connexion.php">Retour à l'administration</a></h3>
    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['titre']) AND isset($_POST['contenu']))
    {
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // 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 noel VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
    // On protège la variable "id_news" pour éviter une faille SQL
    $_POST['id_news'] = addslashes($_POST['id_news']);
    // C'est une modification, on met juste à jour le titre et le contenu
    mysql_query("UPDATE noel SET titre='" . $titre . "', date='". $date ."', contenu='" . $contenu . "' 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
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM noel WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
    ?>
    <table><tr>
    <th class="petit">Modifier</th>
    <th class="petit">Supprimer</th>
    <th>Titre</th>
    <th>Date</th>
    <th>Date d'ajout</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM noel ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr>
    <td class="petit"><?php echo '<a href="noel.php?modifier_news=' . $donnees['id'] . '#ajouter_news">'; ?>Modifier</a></td>
    <td class="petit"><?php echo '<a href="noel.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo stripslashes($donnees['date']); ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news
    ?>
    </table>
    <p><br/><br/></p>
    <hr/>
    <p><br/><br/></p>

    <!----------------------------------------------------
    Edition des news
    ----------------------------------------------------->

    <h2 id="ajouter_news">Edition des infos</h2>

    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <h3><a href="noel.php">Annuler</a></h3>

    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
    {
    // On protège la variable "modifier_news" pour éviter une faille SQL
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les infos de la news correspondante

    $donnees = mysql_fetch_array($retour);

    // On place le titre et le contenu dans des variables simples
    $titre = stripslashes($donnees['titre']);
    $date = stripslashes($donnees['date']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $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 = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
    <form action="noel.php" method="post">
    <p>Lieu : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>Date : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>
    <p>
    Pionniers présents :<br />
    <textarea name="contenu" cols="50" rows="10"><?php echo $contenu; ?></textarea><br />

    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />

    </p>

    </form>

    </div>

    1. Petite note : je ne connais quasiment pas le PHP. J'ai donc piqué le code sur http://www.siteduzero.com/tutoriel-3-14557-tp-des-news-sur-votre-site.html#ss_part_1
  6. Voici le code de la page qui ne marche pas (les autres sont presques pareilles à l'exception des noms):

    <div id="corps">

    <h2>Liste des news</h2>

    <h3><a href="pedagogie.php#ajouter_news">Ajouter une news</a></h3>
    <h3><a href="../connexion.php">Retour à l'administration</a></h3>
    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    //-----------------------------------------------------
    // Vérification 1 : est-ce qu'on veut poster une news ?
    //-----------------------------------------------------
    if (isset($_POST['titre']) AND isset($_POST['contenu']))
    {
    $titre = addslashes($_POST['titre']);
    $contenu = addslashes($_POST['contenu']);
    // 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 pedagogie VALUES('', '" . $titre . "', '". $date ."', '" . $contenu . "', '" . time() . "')");
    }
    else
    {
    // On protège la variable "id_news" pour éviter une faille SQL
    $_POST['id_news'] = addslashes($_POST['id_news']);
    // C'est une modification, on met juste à jour le titre et le contenu
    mysql_query("UPDATE pedagogie SET titre='" . $titre . "', date='". $date ."', contenu='" . $contenu . "' 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
    // On protège la variable "id_news" pour éviter une faille SQL
    $_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
    mysql_query('DELETE FROM pedagogie WHERE id=\'' . $_GET['supprimer_news'] . '\'');
    }
    ?>
    <table><tr>
    <th class="petit">Modifier</th>
    <th class="petit">Supprimer</th>
    <th>Titre</th>
    <th>Date</th>
    <th>Date d'ajout</th>
    </tr>
    <?php
    $retour = mysql_query('SELECT * FROM pedagogie ORDER BY id DESC');
    while ($donnees = mysql_fetch_array($retour)) // On fait une boucle pour lister les news
    {
    ?>
    <tr>
    <td class="petit"><?php echo '<a href="pedagogie.php?modifier_news=' . $donnees['id'] . '#ajouter_news">'; ?>Modifier</a></td>
    <td class="petit"><?php echo '<a href="pedagogie.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
    <td><?php echo stripslashes($donnees['titre']); ?></td>
    <td><?php echo stripslashes($donnees['date']); ?></td>
    <td><?php echo date('d/m/Y', $donnees['timestamp']); ?></td>
    </tr>
    <?php
    } // Fin de la boucle qui liste les news
    ?>
    </table>
    <p><br/><br/></p>
    <hr/>
    <p><br/><br/></p>

    <!----------------------------------------------------
    Edition des news
    ----------------------------------------------------->

    <h2 id="ajouter_news">Edition des infos</h2>

    <h3><a href="../../Accueil/index.php">Retour à l'accueil</a></h3>
    <h3><a href="pedagogie.php">Annuler</a></h3>

    <?php
    mysql_connect("localhost","********", "********");
    mysql_select_db("pio");
    if (isset($_GET['modifier_news'])) // Si on demande de modifier une news
    {
    // On protège la variable "modifier_news" pour éviter une faille SQL
    $_GET['modifier_news'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier_news']));
    // On récupère les infos de la news correspondante

    $donnees = mysql_fetch_array($retour);

    // On place le titre et le contenu dans des variables simples
    $titre = stripslashes($donnees['titre']);
    $date = stripslashes($donnees['date']);
    $contenu = stripslashes($donnees['contenu']);
    $id_news = $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 = '';
    $contenu = '';
    $id_news = 0; // La variable vaut 0, donc on se souviendra que ce n'est pas une modification
    }
    ?>
    <form action="pedagogie.php" method="post">
    <p>Lieu : <input type="text" size="30" name="titre" value="<?php echo $titre; ?>" /></p>
    <p>Date : <input type="text" size="30" name="date" value="<?php echo $date; ?>" /></p>
    <p>
    Pionniers présents :<br />
    <textarea name="contenu" cols="50" rows="10"><?php echo $contenu; ?></textarea><br />

    <input type="hidden" name="id_news" value="<?php echo $id_news; ?>" />
    <input type="submit" value="Envoyer" />

    </p>

    </form>

    </div>