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 :

Formulaire avec plusieurs input number [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Formulaire avec plusieurs input number
    Bonjour ! Étant très débutant j'appelle à l'aide pour mon petit problème. Je fais un formulaire qui comprend 12 items sur lesquels on peut donner une note de 1 à 5, je suis bloqué au moment de transmettre les données à une bdd, car je veux que la moyenne des notes de chaque item soit calculée et ensuite retournée, je sais que j'en demande beaucoup, mais j'espère tout de même quelques indices, ou la procédure complète si vous vous sentez généreux. Voici mon début de 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
    if (isset($_POST['note1']) AND isset($_POST['note2'])AND isset($_POST['note3'])AND isset($_POST['note4'])AND isset($_POST['note5'])AND isset($_POST['note6'])AND isset($_POST['note7'])AND isset($_POST['note8'])AND isset($_POST['note9'])AND isset($_POST['note10'])AND isset($_POST['note11'])AND isset($_POST['note12']))
    {
        $note1 = mysql_real_escape_string(htmlspecialchars($_POST['note1'])); 
    	$note2 = mysql_real_escape_string(htmlspecialchars($_POST['note2']));
    	$note3 = mysql_real_escape_string(htmlspecialchars($_POST['note3']));
    	$note4 = mysql_real_escape_string(htmlspecialchars($_POST['note4']));
    	$note5 = mysql_real_escape_string(htmlspecialchars($_POST['note5']));
    	$note6 = mysql_real_escape_string(htmlspecialchars($_POST['note6']));
    	$note7 = mysql_real_escape_string(htmlspecialchars($_POST['note7']));
    	$note8 = mysql_real_escape_string(htmlspecialchars($_POST['note8']));
    	$note9 = mysql_real_escape_string(htmlspecialchars($_POST['note9']));
    	$note10 = mysql_real_escape_string(htmlspecialchars($_POST['note10']));
    	$note11 = mysql_real_escape_string(htmlspecialchars($_POST['note11']));
    	$note12 = mysql_real_escape_string(htmlspecialchars($_POST['note12']));
     
        mysql_query("INSERT INTO film VALUES('','" . $note1 . "', '" . $note2 . "', '" . $note3 . "', '" . $note4 . "', '" . $note5 . "', '" . $note6 . "', '" . $note7 . "', '" . $note8 . "', '" . $note9 . "', '" . $note10 . "', '" . $note11 . "', '" . $note12 . "')");
    Merci à l'avance de votre considération.
    Dernière modification par Invité ; 12/08/2015 à 18h54.

  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
    Aie

    Nomme tes champs comme ça
    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
    if (isset($_POST['note'])) {
        for ($i = 0; $i < 12; $i++) {
              if (empty($_POST['note'][$i])) {
                     $erreur = 'Vous devez renseigner toutes les notes';
                     break;
              }
              else {
                     $note = (int)$_POST['note'][$i];
                     if ($note < 1 || $note > 5) {
                          $erreur = 'Les notes doivent être comprises entre 1 et 5';
                          break;
                     }
                     else {
                           $values[] = $note;
                     }
              }
        }
        mysql_query("INSERT INTO film VALUES(''," . implode(',', $values) . ")";
    }
    echo 'Moyenne des notes : ' . (array_sum($values) / count($values));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Wow merci Je m'attendais pas à une réponse aussi complète et rapide ! Seul petit détail, le 'Vous devez renseigner toutes les notes' est-il vraiment nécessaire? puisque chaque input number est déjà placé sur un chiffre en particulier avant même que le vote soit fait. Et même chose pour le 'Les notes doivent être comprises entre 1 et 5', puisque j'ai mit un min et max qui empêche de voter au-delà de ça, donc est-ce utile d'écrire ces messages d'erreurs? Mais sinon je te remercie infiniment !

  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
    Si tu ne controles pas ce que PHP recoit, l'utilisateur peut envoyer n'importe quoi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Invité
    Invité(e)
    Par défaut
    Il semble y avoir une erreur.. ça me dit unexpected ';' à propos de cette ligne de code: mysql_query("INSERT INTO film VALUES(' '," . implode(',', $values) . ")";

  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
    J'ai oublié une parenthèse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO film VALUES(''," . implode(',', $values) . ")");
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Invité
    Invité(e)
    Par défaut
    Je me rends compte que je suis encore plus mauvais que je pensais, j'ai du mal à identifier les variables à ajouter dans ma bdd, j'ai mit 'note' et 'values' en int mais les résultats sont erronés... c'est laborieux mon affaire..

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

Discussions similaires

  1. Un formulaire avec plusieurs boutons "submit"
    Par novices dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 11/09/2006, 21h25
  2. Formulaire avec plusieurs listes déroulantes
    Par cyberdevelopment dans le forum Langage
    Réponses: 5
    Dernier message: 17/07/2006, 16h59
  3. formulaire avec plusieurs etapes
    Par dolf13 dans le forum Langage
    Réponses: 2
    Dernier message: 30/05/2006, 09h54
  4. Formulaire avec plusieurs submit !
    Par alfigor dans le forum Langage
    Réponses: 6
    Dernier message: 21/04/2006, 12h09
  5. Formulaire avec plusieurs submit -> Récupération
    Par masseur dans le forum Langage
    Réponses: 14
    Dernier message: 30/03/2006, 08h17

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