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 :

Update avec un champ textarea


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut Update avec un champ textarea
    bonjour à tous,

    j'aimerais obtenir votre aide sur un problème update des champs commentaire. a chaque fois je remplis les case <textarea>, rien ne s'ajoute dans la base de donnée

    voici ma bdd:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE `commentaire` (
      `id` smallint(6) NOT NULL,
      `question` varchar(255) default NULL,
      `resultat1` text NOT NULL,
     )
    et mon script insertion:
    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
    28
    29
     
    $req="SELECT question, proposition1, proposition2, proposition3, proposition4, proposition5 FROM formulaire where id='6'    ";
    $MySQL_infos = mysql_query($req) or die(mysql_error());
    $infos = mysql_fetch_array($MySQL_infos);
    //On sélectionne le nombre de votes
    $MySQL_votes = mysql_query("SELECT resultats1, resultats2, resultats3,resultats4,resultats5 FROM commentaire WHERE id = '6'") or die(mysql_error());
    $votes = mysql_fetch_assoc($MySQL_votes);
    //script pour ajouter les votes et ip
    $ip = $_SERVER['REMOTE_ADDR'];
    $prop = "prop";
     
    $resultat = "resultats";
    $fin = false;
    if(isset($_POST['6']))
    {
    	for($i = 1; $i <= 5 && !$fin; $i++)
    	{
    		if($_POST['6'] == $prop . $i)
    		{
    			$votes[$resultat . $i] ++;
    			mysql_query("UPDATE commentaire SET  " . $resultat . $i . " = '" . $votes[$resultat . $i] . "' WHERE id = '6'") or die(mysql_error());
    			$fin = true;
    		}
    	}
    }
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    echo '<textarea name="6" cols="35" rows="10" id="6"></textarea>';
    echo '<br />';
    merci de votre aide par avance

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Est-ce que tu as controllé que tu passais tes 3 conditions ?

    En particulier, pourquoi le <textarea> vaudrait "prop1" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    je pense oui?
    à quoi ca pourrait correspondre d'autre?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    $_POST['6'] contient ce qui as été saisi dans ton <textarea>

    Tu devrais faire un print_r($_POST); pour controler ce que tu recois.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    je reçois un "array()" c normal?
    pour arriver a inserer les valeurs commentaire, que dois-je faire?

    merci de vos aides

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    est-ce que tu as bien method="post" dans la declaration de ton <form> ?
    est-ce que tu valides bien le formulaire avec un bouton "submit" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    ba oui, j'ai bien un bouton post et un bouton submit:
    voici le script:
    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
    28
    29
    30
    31
    32
    33
    34
     
    $req="SELECT question, proposition1, proposition2, proposition3, proposition4, proposition5 FROM formulaire where id='6'    ";
    $MySQL_infos = mysql_query($req) or die(mysql_error());
    $infos = mysql_fetch_array($MySQL_infos);
    //On sélectionne le nombre de votes
    $MySQL_votes = mysql_query("SELECT resultats1, resultats2, resultats3,resultats4,resultats5 FROM commentaire WHERE id = '6'") or die(mysql_error());
    $votes = mysql_fetch_assoc($MySQL_votes);
    //script pour ajouter les votes et ip
    $ip = $_SERVER['REMOTE_ADDR'];
    $prop = "prop";
     
    $resultat = "resultats";
    $fin = false;
    if(isset($_POST['6']))
    {
    	for($i = 1; $i <= 5 && !$fin; $i++)
    	{
    		if($_POST['6'] == $prop . $i)
    		{
    			$votes[$resultat . $i] ++;
    			mysql_query("UPDATE commentaire SET  " . $resultat . $i . " = '" . $votes[$resultat . $i] . "' WHERE id = '6'") or die(mysql_error());
    			$fin = true;
    		}
    	}
    }
    //print_r($_POST);
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    //if ($infos['proposition1'] != "")
    //echo  ''.stripslashes($infos['proposition1']).''.'<font style=" font-family: Verdana, Arial, Helvetica, sans-serif;  font-size: 10px;">'.  " <label for='prop1'></font>";
    echo '<textarea name="6" cols="35" rows="10" id="6"></textarea>';
    echo '<br />';
     
    echo '<input type="image" width="75" src="img/formulaire/voter.gif"  name="formulaire "/>';
    rien ne s'enregistre

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Un formulaire commence par <form> et se termine par </form>
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    desolé, j'ai pas mis tout le script mais le voici:

    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
    28
    29
    30
    31
    32
    33
    34
     
    <?php
    echo '<form action="form2.php" method="post" name="formulaire" >';
    $req="SELECT question, proposition1, proposition2, proposition3, proposition4, proposition5 FROM formulaire WHERE id="."'" . $numeroDusondage['nbre_entrees'] . "'    ";
    $MySQL_infos = mysql_query($req) or die(mysql_error());
    $infos = mysql_fetch_array($MySQL_infos);
    //On sélectionne le nombre de votes
    $MySQL_votes = mysql_query("SELECT resultats FROM commentaire WHERE id="."'" . $numeroDusondage['nbre_entrees'] . "'") or die(mysql_error());
    $votes = mysql_fetch_assoc($MySQL_votes);
    //script pour ajouter les votes et ip
    $ip = $_SERVER['REMOTE_ADDR'];
    $prop = "prop";
     
    $resultat = "resultats";
    $fin = false;
     
    $nombreEntrees = mysql_query("SELECT MAX(id) AS nbre_entrees FROM formulaire where id='6' ") or die(mysql_error());
    $numeroDusondage = mysql_fetch_assoc($nombreEntrees);
        $prop = "prop";
    	$resultat = "resultats";
        $formulaire_id = $numeroDusondage['nbre_entrees'];
        $sql = "INSERT INTO commentaire (formulaire_id, resultats) VALUES ('$formulaire_id', '$resultat')";
        mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    //print_r($_POST);
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    //if ($infos['proposition1'] != "")
    //echo  ''.stripslashes($infos['proposition1']).''.''.  " <label for='prop1'></font>";
    echo '<textarea name="6" cols="35" rows="10" id="6"></textarea>';
    echo '<br />';
    echo '<br /><br />';
    echo '<input type="image" width="75" src="img/formulaire/voter.gif"  name="formulaire "/>';
     
    echo'</form>';
    j'arrive a recuperer id du formulaire mais le resultat du chyamp commentaire est egale a la variable resultat mais pourquoi? qu'est qui ne va pas?

    merci

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu fais des choses étranges.
    Je prends une ligne au hasard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX(id) AS nbre_entrees FROM formulaire where id='6'
    Le plus grand "id" de formulaire ou id=6 ... ba c'est forcemment 6.

    mais le resultat du champ commentaire
    Je ne vois pas de champ "commentaire" dans ton code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    a la fin il ya :
    echo '<textarea name="6" cols="35" rows="10" id="6"></textarea>';

    sinon, comment faire?

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    D'accord "6" c'est ton champ "commentaire" ?

    Ligne 13 et ligne 19 tu as écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = "resultats";
    Pourquoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    que faudrait-il marqué pour insérer le champ commentaire dans la base?

    merci

  14. #14
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $resultat = mysql_real_escape_string($_POST["6"]);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    dans le <textarea></textarea> je met quel valeur?

    merci

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    je me suis trompé.
    dans <textarea name='6'></textarea>

    mais dans insert:
    INSERT INTO commentaire (formulaire_id, ???) values ('formulaire_id','$resultat')
    quel valeurs je lui donne?

    quand c'est resultats, j'ai le mot resultats qui s'insere dans le champ resultats, alors que ca devrait etre les phrases entrer dans le champ commentaire.

    ce qui donne maintenant:
    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
     
     if(isset($_POST['6'])) {
    $nombreEntrees = mysql_query("SELECT MAX(id) AS nbre_entrees FROM formulaire where id='6' ") or die(mysql_error());
    $numeroDusondage = mysql_fetch_assoc($nombreEntrees);
        $prop = "prop";
    	$resultat = mysql_real_escape_string($_POST["6"]);
        $formulaire_id = $numeroDusondage['nbre_entrees'];
        $sql = "INSERT INTO commentaire (formulaire_id) VALUES ('$formulaire_id', '$resultat')";
        mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());}
    //print_r($_POST);
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    //if ($infos['proposition1'] != "")
    //echo  ''.stripslashes($infos['proposition1']).''.''.  " <label for='prop1'></font>";
    echo '<textarea name="6" cols="35" rows="10" id="6"></textarea>';
     
    echo '<br />';
    merci

  17. #17
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Etant donné que tu n'as que 3 champs dans ta base, le choix est réduit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $sql = "INSERT INTO commentaire (formulaire_id,resultat) VALUES ('$formulaire_id', '$resultat')";
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    ce qui est bizzare, rien ne s'insere. quand je retire le if(isset($_POST['6'] j'ai enregistrement de id et formulaire_id.

    d'ou peut provenir le probleme? et pourquoi? comment le résoudre?

    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
     
     if($_POST['6']==$prop) {
    $nombreEntrees = mysql_query("SELECT MAX(id) AS nbre_entrees FROM formulaire where id='6' ") or die(mysql_error());
    $numeroDusondage = mysql_fetch_assoc($nombreEntrees);
        $prop = "prop";
    	$resultat = mysql_real_escape_string($_POST["6"]);
        $formulaire_id = $numeroDusondage['nbre_entrees'];
        $sql = "INSERT INTO commentaire (formulaire_id, resultats) VALUES ('$formulaire_id', '$resultat')";
        mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());}
    //print_r($_POST);
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    //if ($infos['proposition1'] != "")
    //echo  ''.stripslashes($infos['proposition1']).''.''.  " <label for='prop1'></font>";
    echo '<textarea name="6" cols="35" rows="10" ></textarea>';
     
    echo '<br />';
    merci de votre aide

  19. #19
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Je repose la question a laquelle tu n'as pas repondu :

    pourquoi mets-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  20. #20
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    284
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 284
    Par défaut
    ca marche pour les update pour les autres insertion.
    dans ce cas si, je ne dois certainement pas utiliser:

    ce qui deviens:
    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
     
    $req="SELECT question, proposition1, proposition2, proposition3, proposition4, proposition5 FROM formulaire    ";
    $MySQL_infos = mysql_query($req) or die(mysql_error());
    $infos = mysql_fetch_array($MySQL_infos);
    //On sélectionne le nombre de votes
    $MySQL_votes = mysql_query("SELECT resultats FROM commentaire WHERE id="."'6'") or die(mysql_error());
    $votes = mysql_fetch_assoc($MySQL_votes);
    //script pour ajouter les votes et ip
    $nombreEntrees = mysql_query("SELECT MAX(id) AS nbre_entrees FROM formulaire where id='6' ") or die(mysql_error());
    $numeroDusondage = mysql_fetch_assoc($nombreEntrees);
    if(isset($_POST['6'])) {
    	$resultats = mysql_real_escape_string($_POST["6"]);
        $formulaire_id = $numeroDusondage['nbre_entrees'];
        $sql = "INSERT INTO commentaire (formulaire_id, resultats) VALUES ('$formulaire_id', '$resultats')";
        mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());}
    //print_r($_POST);
    if ($infos['question'] != "")
    echo '<div class="archives">'.stripslashes($infos['question']).'</div>'.''. "";
    //if ($infos['proposition1'] != "")
    //echo  ''.stripslashes($infos['proposition1']).''.''.  " <label for='prop1'></font>";
    echo '<span class="date">';
    echo '<textarea name="6" cols="35" rows="10" ></textarea>';
    echo '</span>';
    echo '<br /><br />';
    le problème, lorsque je met insertion dans le if(isset($_POST['6'], aucune valeur ne s'insere. quand je le retire il ya juste id et formulaire_id mais comment je pourrais inserer les valeurs du champ commentaire dans ce cas ci?

    merci

Discussions similaires

  1. [10g] Problème UPDATE avec un champ BLOB
    Par Nico02 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 04/07/2013, 09h25
  2. pb avec le champ <textarea> des formulaires
    Par laurentSc dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 04/04/2008, 14h52
  3. Problème avec un update et un champs
    Par kornmuse90 dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/03/2006, 15h55
  4. Update avec du chinois sur un champ nvarchar
    Par broux dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/02/2006, 14h16
  5. UPDATER le champ d'une table 1 avec le champ d'une table 2
    Par alain.dissoir dans le forum Oracle
    Réponses: 2
    Dernier message: 08/06/2005, 13h07

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