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

Langage PHP Discussion :

update d une table en fonction de champs texte


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 40
    Points
    40
    Par défaut update d une table en fonction de champs texte
    Bonjour à tous,
    voilà je galère avec un formulaire...
    Je m'explique :
    j'ai créé des champs texte qui s'affiche en fonction du nombre de lignes que j'ai dans une table. Ensuite, une fois le résultat affiché, je dois pouvoir le modifier et enfin mettre à jour chaque ligne dans la base... euh jsais pas si très clair...
    donc mon soucis c'est seule la dernière ligne est mise à jour
    Je ne sais pas comment lui faire prendre en compte l'ensemble des lignes...
    voici mon code

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    <?php
    //......
     if (isset($_POST['select'])){ 
     
    $DataListe=$_POST['qcm']; 
    $qcm=$DataListe['id']; 
     
    //chercher les questions dans la base
    $recherche_quest="select id_qcm, id_quest, question, valeur from qcm_".$qcm." where id_qcm=".$qcm."";
    $recup_quest=mysql_query($recherche_quest) or die ('Erreur SQL !<br>'.$recherche_quest.'<br>'.mysql_error());
     
    echo "<form action=\"qcm_create.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"modif_quest\" target=\"_self\">
     
     <table width=\"100%\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>N°</td><td>Question</td><td>Réponse<br />
    0 = oui/1 = non/2 = ne sais pas</td>";
     
    //AFFICHAGE DES QUESTIONS
     
    while($affiche_question=mysql_fetch_array($recup_quest,MYSQL_ASSOC)){
     
     
    echo "<tr>
        <td><input name=\"qcm\" id=\"qcm\" type=\"hidden\" value=\"".$affiche_question['id_qcm']."\" /></td></tr><tr>
        <td><input name=\"num_quest\" id=\"num_quest\" type=\"text\" value=\"".$affiche_question['id_quest']."\" size=\"2\" maxlength=\"2\" /></td><td><input name=\"question\" id=\"question\" type=\"text\" value=\"".$affiche_question['question']."\" size=\"100\" maxlength=\"500\" /></td><td><input name=\"reponse\" id=\"reponse\" type=\"text\" value=\"".$affiche_question['valeur']."\" size=\"2\" maxlength=\"1\" /></td></tr><br>";
    }//fermeture du WHILE
    echo "<input name=\"modif\" type=\"submit\" value=\"VALIDER LES MODIFICATIONS\" />";
     }//fermeture du ISSET SELECT
     
     
     
    if (isset($_POST['modif'])){
     
     
    $question=mysql_real_escape_string($_POST['question']);
    $reponse=mysql_real_escape_string($_POST['reponse']);
    $id=mysql_real_escape_string($_POST['num_quest']);
    $qcm=mysql_real_escape_string($_POST['qcm']);
     
    $sqlmodif="update qcm_".$qcm." set question='".$question."',valeur='".$reponse."'where id_quest=".$id;
    mysql_query($sqlmodif) or die ("Erreur lors de la mise à jour de la base".mysql_error());
     
    }
     
     
     
     
    ?>
     
    </table></form>
    </body>
    </html>
    Merci à ceux qui auront le courage de me lire jusqu'au bout et à ceux qui pourront m'aider à y voir plus clair !!!

  2. #2
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Slt,

    Le souci c'est que tous tes inputs ont le même nom : tu as X input question, autant de reponse, num_quest et qcm.
    Tu peux ajouter des crochets aux noms je crois que ça va te permettre de les récupérer dans un tableau. Et ensuite dans ton traitement de MAJ il te faut parcourir ces 4 tableaux et faire la MAJ en BDD pour chaque élément.
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    ok je m'accroche tant bien que mal à ta réponse et je vais essayer...
    si t'as un ptit exemple je suis preneuse, c'est pas super clair pour moi ...
    allez j'essaye !!!

  4. #4
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Pour le formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    echo "<tr>
        <td><input name=\"qcm[]\" id=\"qcm\" type=\"hidden\" value=\"".$affiche_question['id_qcm']."\" /></td></tr><tr>
        <td><input name=\"num_quest[]\" id=\"num_quest\" type=\"text\" value=\"".$affiche_question['id_quest']."\" size=\"2\" maxlength=\"2\" /></td><td><input name=\"question[]\" id=\"question\" type=\"text\" value=\"".$affiche_question['question']."\" size=\"100\" maxlength=\"500\" /></td><td><input name=\"reponse[]\" id=\"reponse\" type=\"text\" value=\"".$affiche_question['valeur']."\" size=\"2\" maxlength=\"1\" /></td></tr><br>";
    }//fermeture du WHILE
    Pour le traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    if (isset($_POST['modif'])){
     
    for($i = 0 ; $i < count($_POST['qcm']); $i++)
    {
    $question=mysql_real_escape_string($_POST['question'][$i]);
    $reponse=mysql_real_escape_string($_POST['reponse'][$i]);
    $id=mysql_real_escape_string($_POST['num_quest'][$i]);
    $qcm=mysql_real_escape_string($_POST['qcm'][$i]);
     
    $sqlmodif="update qcm_".$qcm." set question='".$question."',valeur='".$reponse."'where id_quest=".$id;
    mysql_query($sqlmodif) or die ("Erreur lors de la mise à jour de la base".mysql_error());
    }
     
    }
    A tester et à peaufiner peut-être mais y'a l'idée
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    ok super !!!
    je ne pouvais pas en espérer autant, un grand merci !!!
    j'essaye de clarifier tout ça !!!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    Un grand MERCI Amara !!!
    ça marche c'est génial !!!

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par saphi Voir le message
    Un grand MERCI Amara !!!
    ça marche c'est génial !!!
    Nickel, content d'avoir pu t'aider, bon courage pour la suite
    Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

    Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/12/2013, 09h42
  2. Réponses: 6
    Dernier message: 09/09/2011, 15h15
  3. Update d'une table en fonction des champs d'une autre table
    Par The Molo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 05/02/2008, 15h41
  4. 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
  5. UPDATE d'une table avec test d'un champ d'une autre table
    Par delphim dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/05/2004, 12h30

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