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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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

+ 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