Php mysql checkbox
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

Php mysql checkbox



  1. #1
    JS7777

    Php mysql checkbox


    ------

    Bonsoir à tous,

    Dans un page web j'ai 3 checkbox, quand je sélectionne une ou plusieurs et que je fait Submit cela ajoute à la base de données.

    Html:
    Code HTML:
    <html>
    <head>
     <title>Php Form</title>
    </head>
    <body>
    <form action="insert3.php" method="post">
    
    		<input type="checkbox" name="chk1[]" value="value1">value1</option><br>
    		<input type="checkbox" name="chk1[]" value="value2">value2</option><br>
    <input type="checkbox" name="chk1[]" value="value3">value3</option><br>
    <br>
    	
    	<input type="submit" name="Submit" value="Submit">
    </form>
    
    </body>
    </html>
    Php:
    Code PHP:
    <?php
    include("config.php");
    $checkbox1 $_POST['chk1'];
     if (
    $_POST["Submit"]=="Submit")
     {
         for (
    $i=0$i<sizeof($checkbox1);$i++) {
             
    $query="INSERT INTO person (name) VALUES ('".$checkbox1[$i]."')";
             
        
             
    mysql_query($query) or die(mysql_error());
         }
         echo 
    "Record is inserted";
     }
     
     
    ?>

    J'ai une deuxième colonne dans le tableau "person". Cette colonne s'apelle "numb" et j'aimerai que cela ajoute "+1" à chaque fois pour chaque valeur si le(s) cases sont cochés. (si elles ne sont pas cochés, ne rien ajouter)

    Merci d'avance

    Cdt

    -----
    Dernière modification par JS7777 ; 20/06/2017 à 21h46.
    Ce que les entreprises jettent : Du matériel neuf

  2. #2
    Bluedeep

    Re : Php mysql checkbox

    Bonjour

    J'ai une deuxième colonne dans le tableau "person". Cette colonne s'apelle "numb" et j'aimerai que cela ajoute "+1" à chaque fois pour chaque valeur si le(s) cases sont cochés. (si elles ne sont pas cochés, ne rien ajouter)
    Désolé, mais c'est pas clair. Ajouter "+1" à quel stade ? Avant l'insertion ? Après ?

    Comme d'hab, on a pas le schema complet de la table (ce n'est pas spécifique à toi, c'est hélas habituel).Donc pour commencer quelle est la PK de la table person ? Comment est elle alimentée ? (auto incrémentation ? GUID ? autre ?)

    Je précise néanmoins que la façon dont tu fais ton insertion ne permettra pas de s'assurer de manière absolue que l'incrément se se fera sur la bonne ligne, si l'incrément se fait après l'insertion : si c'est le cas, il faut avoir une insertion qui te renvoie aussi la PK au sein d'une opération "atomique" donc, de facto, via une PS.

  3. #3
    JS7777

    Re : Php mysql checkbox

    Merci pour ta réponse

    Désolé, mais c'est pas clair. Ajouter "+1" à quel stade ? Avant l'insertion ? Après ?
    J'aimerai savoir le nombre de fois que les utilisateurs du formulaire ont choisi la case 1 et/ou 2 et/ou 3. Donc ajouter +1 à "numb" pour chaque élément à chaque fois que la ou les cases sont cochés.
    (J'ai réussi à le faire avec un menu déroulant avec de l'aide sur internet mais là c'est avec des cases à cocher et on peut choisir plusieurs valeurs)

    J'utilise EasyPhp.
    Nom : sql.jpg
Affichages : 636
Taille : 66,9 Ko

    si c'est le cas, il faut avoir une insertion qui te renvoie aussi la PK au sein d'une opération "atomique" donc, de facto, via une PS.
    Ce n'est pas très grave pour le moment


    Merci d'avance

    Cdt
    Dernière modification par JS7777 ; 22/06/2017 à 16h55.
    Ce que les entreprises jettent : Du matériel neuf

  4. #4
    Freemaster

    Re : Php mysql checkbox

    Salut,

    j'imagine que c'est pour des tests, mais ta base est un peu light
    et normalement ton code, si une option n'est pas cochée, y a rien qui entre en base
    si cela entre en base, c'est qu'elle est forcément cochée, donc ton numb est un peu superflux

    maintenant admettons que tu lis ta base, et tu trouves les entrées :
    value1
    value2
    value3

    comment savoir si c'est 1 utilisateur qui as coché les 3 cases, ou 3 utilisateurs qui a coché qu'1 case ?
    o_O

  5. A voir en vidéo sur Futura
  6. #5
    JS7777

    Re : Php mysql checkbox

    Merci pour ta réponse


    et normalement ton code, si une option n'est pas cochée, y a rien qui entre en base
    Ce n'est pas grave, ce sont des tests

    comment savoir si c'est 1 utilisateur qui as coché les 3 cases, ou 3 utilisateurs qui a coché qu'1 case ?
    Je n'ai pas besoin des noms des utilisateurs, juste le nombre de fois que les cases ont étés cochés (numb)


    id
    name numb

    1
    value1 ici

    2
    value2 ici

    3
    value3 ici


    Cdt
    Ce que les entreprises jettent : Du matériel neuf

  7. #6
    Freemaster

    Re : Php mysql checkbox

    donc les 3 entrées c'est toi qui les crées ?
    faut donc modifier ta requête, sinon la liste va s'allonger

    tu initialise à 0 la valeur de numb dans la base
    tu fais un select pour récupérer la valeur actuelle, tu ajoutes +1, et tu update la base avec la clause WHERE name='".$checkbox1[$i]."'
    o_O

  8. #7
    JS7777

    Re : Php mysql checkbox

    faut donc modifier ta requête, sinon la liste va s'allonger
    Oui, c'était un exemple

    tu initialise à 0 la valeur de numb dans la base
    tu fais un select pour récupérer la valeur actuelle, tu ajoutes +1, et tu update la base avec la clause WHERE name='".$checkbox1[$i]."'
    Désolé mais je sais pas comment faire ça, j'ai pris des exemples sur internet.


    Cdt
    Ce que les entreprises jettent : Du matériel neuf

  9. #8
    Freemaster

    Re : Php mysql checkbox

    bon ben je te donne un autre exemple

    le fichier index.html
    Code:
    <html>
    <head>
     <title>Formulaire PHP</title>
    </head>
    <body>
    <form action="insert.php" method="post">
    
    		<input type="checkbox" name="chk1[]" value="value1">choix numéro 1 qui vaudra value1</option><br>
    		<input type="checkbox" name="chk1[]" value="value2">choix numéro 2 qui vaudra value2</option><br>
    		<input type="checkbox" name="chk1[]" value="value3">choix numéro 3 qui vaudra value3</option><br>
    <br>
    	
    	<input type="submit" value="Soumettre">
    </form>
    
    </body>
    </html>
    le fichier insert.php
    Code:
    <?php
    $base = mysql_connect ('localhost', 'root', 'tonpassword');
    mysql_select_db ('tutorial', $base) ;
    
    $checkbox1 = $_POST['chk1'];
    
     if ($checkbox1)
     {
         for ($i=0; $i<sizeof($checkbox1);$i++) {
    	$sel = 'SELECT numb FROM person WHERE name="'.$checkbox1[$i].'"';
    	$resel = mysql_query($sel) or die(mysql_error());
    	$data = mysql_fetch_array($resel);
    	$newsel = $data['numb'] + 1;
    
            $query= 'UPDATE person SET numb="'.$newsel.'" WHERE name="'.$checkbox1[$i].'"';
    	mysql_query($query) or die(mysql_error());       
            
         }
         echo "Requ&ecirc;te effectu&eacute;e";
     }
     
    ?>
    évidemment ce n'est qu'un exemple, que tu pourras améliorer
    o_O

  10. #9
    JS7777

    Re : Php mysql checkbox

    Merci

    J'obtiens une erreur :

    Warning: mysql_connect(): in C:\Program Files (x86)\EasyPHP-12.1\www\insert4.php on line 2

    Warning: mysql_select_db() expects parameter 2 to be resource, boolean given in C:\Program Files (x86)\EasyPHP-12.1\www\insert4.php on line 3
    Aucune base n'a été sélectionnée
    Ce que les entreprises jettent : Du matériel neuf

  11. #10
    Freemaster

    Re : Php mysql checkbox

    faut pas copier bêtement, il me semble que ta base s'appelle bien tutorial, mais tonpassword est à remplacer par le tien
    o_O

  12. #11
    JS7777

    Re : Php mysql checkbox

    Je n'ai pas vu. désolé

    Rien ne s'ajoute à la base
    Ce que les entreprises jettent : Du matériel neuf

  13. #12
    Freemaster

    Re : Php mysql checkbox

    tu as bien 3 entrées dans ta base tel que tu as dit ?
    et bien mis à 0 pour la colonne numb ?
    parce que ici + 1 cela ne risque pas de faire grand chose

    en tout cas je l'ai testé, et chez moi ça marche !
    comme tout exemple, à toi de l'adapter
    o_O

  14. #13
    JS7777

    Re : Php mysql checkbox

    Ca marche merci !

    Maintenant ce que j'aimerais faire c'est de vérifier si les p contiennent une valeur (qui sera ajouté par un bouton avec du java) et si oui d'ajouter +1 à numb

    Code HTML:
     <p id="demo1"></p>
    		<p id="demo2"></p>
    		<p id="demo3"></p>
    		<p id="demo4"></p>

    Ici plus de cases à cocher, il y aura un bouton submit uniquement


    Merci d'avance


    Cdt
    Ce que les entreprises jettent : Du matériel neuf

  15. #14
    JS7777

    Re : Php mysql checkbox

    Je cherche toujours comment faire cela

    Si quelqu'un peut m'aider, merci.
    Ce que les entreprises jettent : Du matériel neuf

Discussions similaires

  1. Checkbox Ajax + Php
    Par squal31 dans le forum Programmation et langages, Algorithmique
    Réponses: 14
    Dernier message: 08/10/2013, 22h57
  2. aide pour Matlab : Checkbox et compilation d'un .m
    Par Pandabear dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 13/06/2013, 11h29
  3. checkBox sous visual C++
    Par imed4ever dans le forum Programmation et langages, Algorithmique
    Réponses: 7
    Dernier message: 23/03/2012, 12h40
  4. Développement : impression de checkbox
    Par toniodelaluna dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 25/03/2010, 11h31
  5. Verification de checkbox avec php
    Par guigui-x dans le forum Internet - Réseau - Sécurité générale
    Réponses: 3
    Dernier message: 11/05/2007, 16h26