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 radio [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut Update avec radio
    Bonjour a tous (ou plutot bonsoir!)

    Un samedi soir bien malheureux puisque passé à bosser sur ce ....... de questionnaire en ligne!!!

    Bref, je bloque completement sur un update lie a des boutons radio. En fait j'arrive sans pb a lire et afficher correctement les boutons en fonction des valeurs de la base (grace a un ptit coup de main de M. sabotage vendredi). Par contre pas moyen de mettre a jour la base quand je lance mon formulaire de traitement php.

    Pour que vous puissiez comprendre voici le 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
    28
    29
    30
    31
    32
    33
    34
     
    // OUVRIR CONNECTION
    require("connecter.php"); 
    //requete sql dans la table en question 
    $sql = 'SELECT ID_amelioration, Nom_amelioration FROM amelioration'; 
    //affectation de la requete une variable 
    $resultat = mysql_query($sql); 
    //retourne le resultat dans un tableau 
    while ($array = mysql_fetch_array($resultat)) {
     
                      $sql3 = 'SELECT Note_ID FROM amelioration_epci WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$array['ID_amelioration'].'"';
                      $resultat3 = mysql_query($sql3); 
                      //retourne le resultat dans un tableau 
                      while ($array3 = mysql_fetch_array($resultat3)) {
     
              echo '<tr class="sstextebloc2">       
                      <td>
                      <input type="hidden" name="ID_amelioration" value="'.$array['ID_amelioration'].'">
                      </td>
                      <td>
                      '.$array['Nom_amelioration'].'
                      </td>';                
     
                      for ($note = 1; $note < 6; $note++) {
     
                      if ($array3['Note_ID'] == $note) { $checked = ' checked="checked" '; }
                      else { $checked = ''; }
     
                      echo ' <td><input type="radio" name="note['.$array['ID_amelioration'].']" value="' . $note . '" ' . $checked . ' onclick="this.form.submit()" /></td>';
                      }
     
              echo '</tr>';
                      }
    }
    Pas de souci pour lire... Par contre pas moyen de mettre a jour. J'ai essayé pas mal de trucs...Je vous mets ma derniere tentative :

    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <?php
     
    // On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
    session_start ();
     
    // OUVRIR CONNECTION
    require("connecter.php");
     
    if (isset ($_POST['note[AMEL1]']))
    {
     
    if ($_POST['note[AMEL1]']==1)
    {
     
    		$note1 = 'UPDATE amelioration_epci SET Note_ID="1" WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$_POST['ID_amelioration'].'"';
    		// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    		mysql_query($note1) or die('Erreur SQL !'.$note1.'<br />'.mysql_error());
     
    }
     
    elseif ($_POST['note[AMEL1]']==2)
     
    {
     
    		$note2 = 'UPDATE amelioration_epci SET Note_ID="2" WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$_POST['ID_amelioration'].'"';
    		// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    		mysql_query($note2) or die('Erreur SQL !'.$note2.'<br />'.mysql_error());
     
    }
     
    elseif ($_POST['note[AMEL1]']==3)
     
    {
     
    		$note3 = 'UPDATE amelioration_epci SET Note_ID="3" WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$_POST['ID_amelioration'].'"';
    		// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    		mysql_query($note3) or die('Erreur SQL !'.$note3.'<br />'.mysql_error());
     
    }
     
    elseif ($_POST['note[AMEL1]']==4)
     
    {
     
    		$note4 = 'UPDATE amelioration_epci SET Note_ID="4" WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$_POST['ID_amelioration'].'"';
    		// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    		mysql_query($note4) or die('Erreur SQL !'.$note4.'<br />'.mysql_error());
     
    }
     
    elseif ($_POST['note[AMEL1]']==5)
     
    {
     
    		$note5 = 'UPDATE amelioration_epci SET Note_ID="5" WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$_POST['ID_amelioration'].'"';
    		// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
    		mysql_query($note5) or die('Erreur SQL !'.$note5.'<br />'.mysql_error());
     
    }
    else {
    echo 'ca marche toujours pas!!!';
    }
    }
     
        header('location:question_7_bis.php');
    ?>
    Pour l'instant, etant un peu desespere, j'essaye juste avec la premiere ligne de mon tableau "amelioration". Mais il me fait pas la mise a jour et recharge la page sans avoir modifié dans la base...Comprends vraiment plus...Pourtant quand j'essaye ma requete toute seule ben pas de souci...

    Quelqu'un aurait une idee?

    Merci d'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
    La syntaxe serait $_POST['note']['AMEL1']

    mais inutile d'ecrire chaque cas, il suffit de faire une boucle sur les notes recues :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if (isset ($_POST['note']))
    {
    foreach ($_POST['note'] as $ID_amelioration=>$note) {
       $sql = 'UPDATE amelioration_epci SET Note_ID=' . $note . ' WHERE Epci_ID="'.$_SESSION['ID_epci'].'" AND Amelioration_ID="'.$ID_amelioration.'"';
       mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
     }
    }
    Au passage, comme pour les notes, plutot que de stocker AMEL1, stocke uniquement 1 en tant que chiffre.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 26
    Par défaut
    Et voila... tant d'heures passées et tu me sors 4 lignes qui fonctionnent en 5 minutes!

    En tout cas ultra soulagé, merci beaucoup, une fois de plus tu m'as sorti de la panade!!!Ayant debute le php il y a peine un mois j'ai pas mal de bug pour la syntaxe (comme pour ton [note][amel1] que j'avais pas bien saisi)...

    Pour ce qui est des identifiants j'avais pris le reflexe lors d'un stage ou j'utilisais des base de données de coder de cette facon pour pouvoir s'y retrouver plus facilement dans les requetes sql...

    A une prochaine et encore merci d'avoir pris du temps pour mon probleme a cette heure tardive!!!

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

Discussions similaires

  1. UPDATE avec JOIN ?
    Par zakuli dans le forum Débuter
    Réponses: 3
    Dernier message: 25/07/2007, 14h53
  2. UPDATE avec des variables Delphi ...
    Par Kokito dans le forum Bases de données
    Réponses: 3
    Dernier message: 08/03/2004, 22h35
  3. Requete d'update avec concatenation !!
    Par chris92 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/02/2004, 12h05
  4. [version] Requete Update avec différentes versions de mySQL
    Par regbegpower dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/01/2004, 17h19
  5. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58

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