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 :

Comment puis-je modifier plusieurs champs à la volée [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut Comment puis-je modifier plusieurs champs à la volée
    Bonjour,

    Je suis en train de refaire la srtucture mysql avec des JOIN et plusieurs table, pour simplifier la maintenance et mise à jour.

    Le problème ce que je n'ai pas eux le temps de finir et il faut modifier les prix des articles rapidement.

    Donc il faut faire ces modifications sur la table initiale, et il y a es centaines, des centaienes de combinaisons, et les prix sont à chaque fois répéter.

    Il n'y a pas une table "prix" ou l on peut changer les prix, et les modifications sont répétées pour toutes les modifications.

    j'ai donc une colonne "batteries" et une colone "prix".

    Comment-puis faire, depuis phpmyadmin,
    1. pour modifier toutes les enregistrement qui ont la batterie "1325" et attribuer le prix modifié
    2. pour modifier toutes les enregistrement qui ont la batterie "4356" et attribuer le prix modifié
    3. pour modifier toutes les enregistrement qui ont la batterie "3421" et attribuer le prix modifié
    4. Et ainsi de suite


    Merci beaucoup
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  2. #2
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Points : 477
    Points
    477
    Par défaut
    Ça ne se fera pas particulièrement avec phpmyadmin, mais avec du SQL, de simples update.
    Par contre, j'ai pas bien compris quel était le critère qui permettait de modifier le prix ?
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

  3. #3
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai pas bien compris la question non plus
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE tatable SET prix = 5546546 WHERE batterie = 1325

    Si tu as par exemple toutes tes correspondantes dans un fichier CSV, tu fais un script PHP avec une boucle et s'est joué en 10 lignes.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    J'ai trouvé mais ca ne marche pas.
    Merci pour votre réactivité.

    J'ai fait un fichier comme ceci.
    Pour exemple, je vous montre les différente valeur:
    $_POST['prixCat'] = "Sfr. 200"
    $_POST['prix'] = "Sfr. 120.20"
    $_POST['batterie'] = "1335 SE (40AH)"

    Attention, chose de pas bien: le nom de la table est "batteries" et le nom du champs qui a les batteries, est aussi "batteries"
    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
     
    <?php
     
     
    include('../sql/db_config.inc.php');
    include('../sql/db_connect.inc.php');
     
     
    $sql_batterie = '
    				UPDATE batteries SET
    				
    				prixcat 	= "'.$_POST['prixCat'].'", #enregistre la valeur prix catalogue
    				prix 		= "'.$_POST['prix'].'" #enregistre la valeur prix
    						
    WHERE batteries = "'.$_POST["batterie"].'"'; #pour toutes les batteries qui ont la même valeur que, selon l'exemple, 1335 SE (40AH)
     
    $sql_query = mysql_query($sql_batterie)or die('Error SQL !'.$sql_batterie.'<br>'.mysql_error());
     
     
    if(mysql_affected_rows ()){
    	echo '<br /><p>';
    	echo mysql_affected_rows ();
    	echo ' enregistremets ont été mises à jour.</p>';
    }else{
    	echo $_POST["batterie"];
    	echo '-';
    	echo $_POST["prixCat"];
    	echo '-';
    	echo $_POST["prix"];
    	echo '<br /><p>Rien n\'a été mis à jour!.</p>';
    }
     
    include('../sql/db_disconnect.inc.php');
    ?>
    Le problème, c'est qu'îl ne me modifie rien. Je n'ai pas de message d'erreur, mais il ne fait pas la modification.

    J'aimerais aussi afficher le nombre d'enregistrement affectés

    Ou sont donc mes erreurs?
    Milles mercis à vous
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  5. #5
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Points : 477
    Points
    477
    Par défaut
    Ça ne semble pas être un problème de syntaxe du coup. Logiquement, ça doit être parce que le where ne retourne rien.

    Si tu fais un
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from batteries where batteries='1335 SE (40AH)';

    ça te renvois quelque chose ?
    SI ça ne renvoie rien, faut pas chercher plus loin…
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

  6. #6
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Hello,
    oui ca ca renvoie bien ce que j'attends
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $sql = 'SELECT DISTINCT COUNT(batteries) as nbre0, batteries, prixcat, prix, inte
    		FROM batteries
    WHERE batteries LIKE "1335 SE (40AH)"
    		GROUP BY batteries
    		ORDER BY batteries
    		';
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Par contre quand le champs batteries est vide, ca marche
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Ok, j'ai compris, il y avait un espace avant la valeru de la batterie, dans la base de donnée
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 096
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 096
    Points : 944
    Points
    944
    Par défaut
    Mais y a pas un moyen pour prévenir ceci?
    Qu'il ne tienne pas en compte un éventuel espace avant les caratères?

    Merci
    Il ne suffit pas de tout savoir. Vouloir et persévérer, c'est déjà presque tout!

  10. #10
    Membre confirmé Avatar de satenske
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 143
    Points : 477
    Points
    477
    Par défaut
    Tu as la fonction trim, elle supprime un éventuel espace au début à et la fin d'une chaine de caractère
    « Only wimps use tape backup: _real_ men just upload their important stuff on ftp, and let the rest of the world mirror it. » – Linus Torvalds

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

Discussions similaires

  1. Modifier plusieurs champs dans un fichier Csv
    Par francois_a dans le forum Shell et commandes GNU
    Réponses: 36
    Dernier message: 02/09/2009, 17h31
  2. [MySQL] Modifier plusieurs champs remplis
    Par fx_web dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 06/12/2008, 21h23
  3. Réponses: 2
    Dernier message: 02/02/2008, 22h38
  4. Comment puis je modifier un assistant paiement
    Par dandav55 dans le forum E-Commerce
    Réponses: 1
    Dernier message: 26/09/2007, 15h30
  5. CSS comment puis-je modifier mon code pr avoir un bord blanc
    Par pierrot10 dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 30/09/2005, 20h19

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