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 :

[Conception] Problème avec l'écriture dans une BDD [Script de news]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut [Conception] Problème avec l'écriture dans une BDD [Script de news]
    Salut !

    Je fais mes premiers pas dans le monde du développement Web, et je dois déjà avouer que c'est beacuoup plus fun

    Bref

    Je viens de rencontrer un problème contre lequel je lutte depuis 1 journée
    Je voudrais faire un scripts de news pour mon futur site, pour me faciliter la tâche, en utilisant les bases de données.
    J'essaie de faire un test .Je créée une table news, et mets 3 champs : ID(INT auto-increment), titre (longtext), contenu (longtext).
    Je créée une page contenant 1 champ de texte et une zone de texte, puis le formulaire envoie le tout à une autre page ecriture.php en POST qui est censée récupérer les 2 variables, et les écrire dasn la base de données.
    Voici le problème : si l'une des 2 informations est trop longue, rien n'est écrit (mais alors DU TOUT, même pas des champs vides) dans la BDD.

    Quelqu'un pourrait-il m'expliquer pourquoi ? Merci

  2. #2
    Membre habitué Avatar de Bobybx
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2005
    Messages : 122
    Points : 125
    Points
    125
    Par défaut
    sans code, c'est dur

    Es-tu sûr de bien récupérer les variables dans ton ecriture.php (genre un ptiti echo après traitement pour voir leur contenu)
    Si ces variables ont le bon contenu, alors c'est ta requete de mise à jour de BDD qui plante
    Mais sans code, on ne peut deviner la solution
    Have Fun

  3. #3
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    C'est vrai c'est un peu facile de ma part de vous donner le rpoblème comme ça

    Voilà le code, il y a 2 pages, une page envoi qui envoie les informations, une autre qui els récupère et qui les écrit ds la BDD :


    PAGE D'ENVOI DES DONNEES :
    ======================

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title><head>
    <body>

    <p class="Style1" align="center">ECRITURE DE NEWS </p>
    <p class="Style1" align="center">&nbsp;</p>
    <form id="form1" name="form1" method="post" action="ecriture.php">
    Titre de la news :<br />
    <label>
    <input type="text" name="titre" maxlength="30" size="80"/>
    </label>
    <p>Contenu :<br />
    <label>
    <textarea name="contenu" rows="18" cols="150"></textarea>
    </label>
    </p>
    <p>&nbsp;</p>
    <p>
    <label>
    <input type="submit" name="Submit" value="Valider" />
    </label>
    </p>
    </form>
    <p align="left" class="Style2"><br />
    <br />
    </body>
    </html>



    PAGE DE RECEPTION ET D'ECRITURE :
    ===========================


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>

    <body>


    <p>
    <?
    $titre = $_POST["titre"];
    $contenu = htmlentities($_POST["contenu"]);
    print $titre."<br>".$contenu ;

    mysql_connect('localhost','root','');
    mysql_select_db("site");
    mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')");
    mysql_close();
    ?>
    </p>
    <p>&nbsp;</p>
    <p><a href="envoi.php">Retour</a></p>
    </body>
    </html>



    Voilà c'est à peu près tout merci d'avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Le problème se situe au niveau des guillemets de la requête sql

    mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')");
    remplace le par ceci:

    mysql_query("INSERT INTO news (titre,contenu) VALUES('". $titre. "', '".$contenu."' )");
    1) Il ne faut pas de '' pour les valeurs du champ id étant donné que ce sont des chiffres.

    2) tu n'es pas obligé de mentionné le champ id dans ta requête insert -> ce dernier se remplira automatiquement étant donné qu'il est auto-increment.

    3) je te conseille d'ajouter le nom des champs dans la requête insert pour avoir une meilleure visibilité.

  5. #5
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    Désolé mais ça ne marche toujours pas ...

    Je crois que c'est du àa la longueur du texte ...

  6. #6
    Invité
    Invité(e)
    Par défaut
    As-tu un erreur qui s'affiche sur ta page?

    Pourrais-tu modier la partie correspondante de ton code par celle-ci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    mysql_connect('localhost','root','') or die("Connexion: ". mysql_error());
    mysql_select_db("site") or die("Sélection db: " . mysql_error()) ;
    mysql_query("INSERT INTO news VALUES('','".$titre."','".$contenu."')") or die ("Execution du query: " . mysql_error());
    Et nous communiquer les éventuelles erreurs qui pourraient apparaître.

  7. #7
    Membre à l'essai
    Profil pro
    Lycéen
    Inscrit en
    Mars 2006
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Maroc

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2006
    Messages : 21
    Points : 14
    Points
    14
    Par défaut
    J'ai enfin trouvé

    Le texte ne s'écrit pas dans la base de données à cause des apostrophes qui entravent la commande SQL

    Il faut donc que j'écrive :

    $contenu=addslashes($_POST["contenu"]);

    Merci beacoup à tous

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Problème avec les update dans une BDD
    Par P.O.K dans le forum ASP.NET
    Réponses: 1
    Dernier message: 13/06/2011, 17h07
  3. [Delta3d] probléme avec un objet dans une map
    Par astragoth dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 27/03/2006, 14h49
  4. Problèmes avec un TWebBrowser dans une DLL
    Par bellamyjc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/01/2005, 22h35
  5. Problème avec un LIKE dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2004, 14h38

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