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 MULTIPLE EN MYSQL [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut UPDATE MULTIPLE EN MYSQL
    Bonjour,

    Faire une INSERT INTO est simple. Cependant, je voudrais faire un UPDATE sur 4 enregistrements à la fois en passant en GET l'id_group(voir ci dessous).
    Est ce que c'est possible? Si oui quelle syntaxe dois-je utiliser en MYSQL? j'ai déjà essayé pas mal de choses mais rien de convainquant

    En sachant que je travaille avec un input text unique + champs cachés en javascript (pour l'INSERT et cela fonctionne) + liste déroulante pour le choix de la langue. Je voudrais faire la même chose pour l'UPDATE.

    Merci d'avance.

    Voici la structure de la table:



    Le type de formulaire:


  2. #2
    Membre chevronné Avatar de rikemSen
    Homme Profil pro
    Analyste Développeur Web - Fizzup.com
    Inscrit en
    Décembre 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste Développeur Web - Fizzup.com
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 387
    Par défaut
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE ta_table SET id_country = valeur, iso_code = valeur, name_country = valeur WHERE id_group = valeur

    Maintenant si tu veux modifier plusieurs enregistrements (et non plusieurs champs) il faut que tu fasses une boucle.

  3. #3
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Merci de ta réponse.

    En fait si tu regardes ma table, j'ai une colonne id_group. Qui est en fait une pseudo clé pour des listes déroulantes liées. L'id_group ne changera jamais.

    En fait, lors de l'update, je voudrais qu'il modifier les 4 langues(Champ name_country).

    Comment faire une boucle avec un update?

    Merci d'avance

  4. #4
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    tu dis que les champs cachés ont une référence au groupe, mais il manque la référence à la langue...

    il faudrait que tu puisses faire une boucle avec un update du genre :


    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    update 'matable' set 'name_country' = 'valeur de l'input' where id_group = 'valeur id groupe' and lang='valeur langue';

    seulement, on n'a pas assez d'info sur ton code pour te répondre objectivement.


  5. #5
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 221
    Par défaut
    Merci de vos réponses.
    Voici les éléments qui manquent:

    Un bon de javascript pour mes champs cachés:

    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
     
    function ChangeCountry(){
    	var a = document.getElementById("country_fr");
    	var b = document.getElementById("country_nl");
    	var c = document.getElementById("country_uk");
    	var d = document.getElementById("country_th");
     
    	if(document.insert_country.lang_country.value =="fr"){
    		if(a.style.display == "none")
    			a.style.display = "inline";
    	}else{
    		a.style.display="none"
    	}
    	if(document.insert_country.lang_country.value =="nl"){
    		if(b.style.display == "none")
    			b.style.display = "inline";
    	}else{
    		b.style.display="none"
    	}
    	if(document.insert_country.lang_country.value =="uk"){
    		if(c.style.display == "none")
    			c.style.display = "inline";
    	}else{
    		c.style.display="none"
    	}
    	if(document.insert_country.lang_country.value =="th"){
    		if(d.style.display == "none")
    			d.style.display = "inline";
    	}else{
    		d.style.display="none"
    	}
    }
    Et les input du form:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="text" id="country_th" name="country_th" style="display: none" value="<?php echo $country_th?>"/>

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    ben voilà...

    donc si tu passe ton id_group en get, dans la page php qui effectue l'update tu devrais faire un truc du genre :

    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
     
    if(isset($_GET['id_group'])) {
     
       $th= (isset($_POST['country_th'])) ? ($_POST['country_th']) : ("");
       $nl= (isset($_POST['country_nl'])) ? ($_POST['country_nl']) : ("");
       $fr= (isset($_POST['country_fr'])) ? ($_POST['country_fr']) : ("");
       $uk= (isset($_POST['country_uk'])) ? ($_POST['country_uk']) : ("");
       $id_group= ($_GET['id_group']);
     
       $datas= array(
             "th" => $th,
             "nl" => $nl,
             "fr" => $fr, 
             "uk" => $uk
       );
     
       foreach($datas as $key => $data) {
     
          // creation de la requete
          $sql= "UPDATE matable SET name_country = '".$data."' WHERE id_group = ".$id_group." AND lang='".$key."'";
     
          // execution la requete
     
     
       }   
     
     
    }

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

Discussions similaires

  1. [MySQL] Update multiple PHP/MySQL
    Par lebanner82 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 20/01/2012, 21h06
  2. [MySQL] bouton radio php mysql UPDATE multiple
    Par Billy69008 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/05/2010, 10h21
  3. UPDATE multiples : un seul pris en compte
    Par balti dans le forum Requêtes
    Réponses: 7
    Dernier message: 29/12/2005, 12h02
  4. multi update avec php/ mysql
    Par arnoweb dans le forum Administration
    Réponses: 1
    Dernier message: 17/11/2005, 22h10
  5. Réponses: 3
    Dernier message: 25/01/2005, 12h31

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