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

Requêtes MySQL Discussion :

incrémenter le champ d'une table à partir de la valeur d'un case à cocher


Sujet :

Requêtes MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Points : 90
    Points
    90
    Par défaut incrémenter le champ d'une table à partir de la valeur d'un case à cocher
    Bonjour,

    Je cherche à incrémenter le champ d'une table à partir de la valeur d'un case à cocher + 1 et j'essai de cette façon, mais cela ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $SQL = ("UPDATE table set compte = compte + 1 WHERE id_champ = $id_champ );
    Pourriez vous m'aider?

  2. #2
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par barale61 Voir le message
    Bonjour,

    Je cherche à incrémenter le champ d'une table à partir de la valeur d'un case à cocher + 1 et j'essai de cette façon, mais cela ne marche pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     $SQL = ("UPDATE table set compte = compte + 1 WHERE id_champ = $id_champ );
    Pourriez vous m'aider?
    $SQL = 'UPDATE table set compte = compte + 1 WHERE id_champ = ' . $id_champ;

    Quel est le type de ton champ compte ?
    Est-ce que ta variable $id_champ a bien une valeur qui existe dans la base de données ?

  3. #3
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Le champ compte doit aussi avoir une valeur par défaut (par exemple 0).
    Quel est le code de création de votre table ?

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    les doubles quotes ne sont pas fermées dans votre code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $SQL = ("UPDATE table set compte = compte + 1 WHERE id_champ = $id_champ );
     
    //Donne
    $SQL = ("UPDATE table set compte = compte + 1 WHERE id_champ = $id_champ");
    Si la données vient de l'utililsateur il faut sécuriser la donnée en entrée voir utiliser les requêtes préparées pour éviter les injections SQL.
    une réponse vous a permis d'avancer ?

  5. #5
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Points : 90
    Points
    90
    Par défaut
    En fait je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "vote")) {
      $insertSQL = sprintf("UPDATE tb_sondage set compteur = compteur + 1 WHERE id_reponse =%s",
                           GetSQLValueString($_POST['id_reponse'], "int"));
    mais cela n'insère rien.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    $insertSQL est un chaîne de caractères maintenant il faut que tu utilise des fonction de communication avec la BDD comme mysqli_ ou PDO.
    une réponse vous a permis d'avancer ?

  7. #7
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Points : 90
    Points
    90
    Par défaut
    Voici la suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      mysql_select_db($database_connexion, $connexion);
      $Result1 = mysql_query($insertSQL, $connexion) or die(mysql_error());

    et mon champ est de type entier.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Points : 1 631
    Points
    1 631
    Par défaut
    Il n'y a aucune erreur remonté par le mysql_erro() ?

    Fait un :
    Juste après le sprintf pour voir ce que contient la chaîne de caractère et test la directement dans PHPMyAdmin ou dans un client MySQL.
    une réponse vous a permis d'avancer ?

  9. #9
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Points : 90
    Points
    90
    Par défaut
    Cela me donne rien c'est donc sans doute une erreur php mais pas sql.

  10. #10
    Membre averti
    Profil pro
    Administrateur
    Inscrit en
    Mai 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 237
    Points : 433
    Points
    433
    Par défaut
    Citation Envoyé par barale61 Voir le message
    Cela me donne rien c'est donc sans doute une erreur php mais pas sql.

    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
     
    <?php
     
    	mysql_select_db($database_connexion, $connexion);
     
    	$action = empty($_POST['MM_insert']) ? NULL : $_POST['MM_insert'];
    	$id_reponse = empty($_POST['id_reponse']) ? 0 : (integer)$_POST['id_reponse'];
     
    	if ( ($id_reponse > 0) && ($action == 'vote') )
    	{
     
    		$sql = 'UPDATE tb_sondage set compteur = compteur + 1 WHERE id_reponse = ' . $id_reponse; 
     
    		print_r($sql);  // test, ligne à supprimer
     
    		mysql_query($sql) or trigger_error(mysql_error(), E_USER_ERROR);
    	}

  11. #11
    Membre régulier
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2013
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Orne (Basse Normandie)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2013
    Messages : 176
    Points : 90
    Points
    90
    Par défaut
    Cela n'affiche toujours rien et pas d'erreur non plus.

Discussions similaires

  1. Réponses: 11
    Dernier message: 08/01/2008, 11h36
  2. remplir champs d'une table à partir liste déroulante
    Par karidrou dans le forum Access
    Réponses: 7
    Dernier message: 08/01/2007, 16h21
  3. Réponses: 7
    Dernier message: 26/05/2006, 19h45
  4. Réponses: 6
    Dernier message: 07/02/2006, 14h44
  5. remplir un champ d'une table à partir d'une autre table
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 11/02/2005, 16h48

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