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 :

Enregistrement dans la base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut Enregistrement dans la base de données
    Hello !

    j'ai un problème lors de l'envoi de news dans ma BDD.

    En fait, rien ne s'enregistre.

    Voici le code du formulaire :
    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
    <form action="adm_ennews.php" method="post" enctype="multipart/form-data">
      <p>
        <label>Titre :</label><br />
        <input type="text" name="titre" />
      </p>
      <p>
        <label>Image :</label><br />
        <input name="image" type="file" />
      </p>
      <p>
        <label>Catégorie :</label><br />
        <select name="cat">
          <option value="radio">News radio</option>
          <option value="people">News people</option>
          <option value="anim">Animateur</option>
          <option value="emission">Emissions</option>
        </select>
      </p>
      <p>
        <label>Contenu :</label><br />
        <textarea name="contenu" cols="50" rows="10">
        </textarea><br />
      </p>
      <p>
        <input type="submit" value="Envoyer" />
      </p>
    </form>
    Le code de traitement du formulaire :
    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
    <?php
      if ($_FILES['image']['error'] > 0) 
        $erreur = "Erreur lors du tranfsert";
    ?>
    <?php
      $directory = $_FILES['image']['tmp_name'];
      $nom = $_FILES['image']['name'];
      if(move_uploaded_file($directory, "C:/wamp/www/radioflash/im/" . $nom))
      {
        echo "<h2>News envoyée</h2>";
      }
      else
      {
        echo  "problème rencontré";
      }
    ?>
    <?php
      $titre = $_POST['titre'];
      $cat = $_POST['cat'];
      $contenu = nl2br($_POST['contenu']);
      $image = $nom;
      $datetime = date("Y-m-d G:i:s");
      $liendb = mysql_connect("localhost", "root", "");
      mysql_select_db("rflash");
      mysql_query("INSERT INTO news VALUES('', $titre, $cat, $contenu, $image)") or die(mysql_error()); 
      echo $contenu;
    ?>
    Et voici le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'd'envoi d'une news people avec image..., SCBern2.gif)' at line 1
    Bon deja ou j'ai bcp de peine à comprendre c'est que si j'enlève l'enregistrement "$contenu" du "mysql_query", ca s'enregistre normalement. Donc je me dit que c'est une erreur, qu'il ne me prend pas "$_POST['contenu']" mais quand je lui demande "echo $contenu", il me l'affiche...

    je ne comprends vraiment pas


    merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Par défaut
    slt
    en ayant survoler ton code rapidemant
    il y a qqch de bizarre dans ton query

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("INSERT INTO news VALUES('', $titre, $cat, $contenu, $image)") or die(mysql_error());
    le premier champ remplit à vide, c'est assez bizarre
    tu devrais spécifier les zones à remplir pour ton insert

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query("INSERT INTO news (field1,field2,field3,field4,field5) VALUES('', $titre, $cat, $contenu, $image)") or die(mysql_error());

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Salut, c'est pour le champ ID, qui est en "auto_increment".

    Mais en spécifiant ca donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO news (id, titre, categorie, contenu, image) VALUES('', $titre, $cat, $contenu, $image)") or die(mysql_error());
    OU :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO news (titre, categorie, contenu, image) VALUES($titre, $cat, $contenu, $image)") or die(mysql_error());
    Mais aucun ne marche

  4. #4
    Membre expérimenté
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Par défaut
    oui je commence à comprendre
    tu insères des valeurs de type string
    mais tu n'as pas de ''

    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $ssql = "insert into tablename (nom,prenom) values (\"$nom\",\"$prenom\")";
    et ne jamais spécifier une valeur pour un champ auto_increment

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Alors, le message d'erreur disparait mais y pas d'enregistrement...

    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
    <?php
    			if ($_FILES['image']['error'] > 0) $erreur = "Erreur lors du tranfsert";
    		?>
    		<?php
    			$directory = $_FILES['image']['tmp_name'];
    			$nom = $_FILES['image']['name'];
    			if(move_uploaded_file($directory, "C:/wamp/www/radioflash/im/" . $nom))
    			{
    			    echo "<h2>News envoyée</h2>";
    			}
    			else
    			{
    			    echo  "problème rencontré";
    			}
    		?>
    		<?php
    			$titre = $_POST['titre'];
    			$cat = $_POST['cat'];
    			$contenu = nl2br($_POST['contenu']);
    			$image = $nom;
    			$datetime = date("Y-m-d G:i:s");
    			$liendb = mysql_connect("localhost", "root", "");
    			mysql_select_db("rflash");
    			$sql = "insert into news (titre,categorie,contenu,image) values (\"$titre\",\"$cat\",\"$contenu\",\"$image\")" or die(mysql_error());;
    			echo $contenu;
    		?>

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Par défaut
    Essaye cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "insert into news (titre,categorie,contenu,image) values ('$titre','$cat','$contenu','$image')" or die(mysql_error());
    Je suis pas sur que ca soit ca

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Bonjour, Je crois que le problème est que tu n'échape pas les caractères spéciales comme les apostrophes, c'est ce qui découpe ta requête et te renvoi une erreur.
    Essai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $contenu = nl2br($_POST['contenu']);
    $contenu=mysql_real_espace_string($contenu);
    Fait signe si ça marche

  8. #8
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Rebonjour

    tjrs la même chose :
    plus de message d'erreur mais tjrs pas d'enregistrement

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    C'est bon j'ai reussi merci quand même

  10. #10
    Membre expérimenté
    Homme Profil pro
    Programmeur Delphi
    Inscrit en
    Octobre 2006
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Programmeur Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2006
    Messages : 183
    Par défaut
    Slt

    affiche le contenu de ta requête...

  11. #11
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Mai 2006
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2006
    Messages : 257
    Par défaut
    Bonjour, désolé pour le message que je t'avais donnée il y avait une petite erreur de frappe, c'est escape et non espace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $contenu = nl2br($_POST['contenu']);
    $contenu=mysql_real_escape_string($contenu);

  12. #12
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    oui je l'avais modifié

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

Discussions similaires

  1. enregistrement dans la base de donnée
    Par car00x dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 03/11/2006, 18h28
  2. Réponses: 1
    Dernier message: 30/07/2006, 20h02
  3. enregistrer dans une base de données
    Par liverbird dans le forum C++Builder
    Réponses: 33
    Dernier message: 12/07/2006, 19h50
  4. [MySQL] Enregistrer dans une base de données à partir d'une liste déroulante
    Par snakejl dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 17/05/2006, 16h32
  5. inscription via le web et enregistrement dans une base de données
    Par titoenis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 17/05/2006, 09h20

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