Maison  >  Questions et réponses  >  le corps du texte

Array - Mise à jour unique php+mysql ?

Supposons que vous récupériez les informations sur les membres de la base de données
Il existe un champ pour les membres appelé p
Le p de chaque membre aura une valeur
Je veux faire quelque chose qui me permettra de "modifier la valeur p de tous les membres à la fois"
Après avoir utilisé php, comment la fin doit-elle être traitée ? !

代言代言2709 Il y a quelques jours777

répondre à tous(5)je répondrai

  • 漂亮男人

    漂亮男人2017-06-12 09:21:49

    Écrivez d'abord un tableau pour stocker l'ID du membre et modifiez la valeur p

    $vips = array(
        array(
            'id' => 1,
            'p' => 1
        ),
        array(
            'id' => 2,
            'p' => 2
        ),
        ...
    );
    foreach ($vips as $vip) {
        执行sql语句 update 会员表 set p  = $vip['p'] where id = $vip['id'];
    }

    répondre
    0
  • 欧阳克

    欧阳克2017-06-12 09:21:49

    La solution actuellement adoptée par @tony_yin est la solution la plus basique. Dans les applications réelles, il convient de veiller à activer la transaction avant le début de la boucle for et à soumettre la transaction après sa fin. Sinon, sans parler des faibles performances, s'il y a un problème avec le programme pendant la boucle for, il est facile de faire en sorte que seules certaines des valeurs p des utilisateurs soient mises à jour, tandis que d'autres ne le sont pas.

    J'ajouterai une autre solution ici : puisqu'il s'agit de MySQL, vous pouvez utiliser la méthode de mise à jour par lots de INSERT ... ON DUPLICATE KEY UPDATE. Exemple de SQL :

    INSERT INTO `user`
     ( `id`, `p` ) 
    VALUES
     ( 11111, 1),
     ( 22222, 2),
     -- ...
     ( 99999, 9)
    ON DUPLICATE KEY UPDATE
      `id` = VALUES(`id`),
      `p` = VALUES(`p`);

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-12 09:21:49

    update 会员表 set p = xxx

    répondre
    0
  • 仅有的幸福

    仅有的幸福2017-06-12 09:21:49

    Découvrez l'identifiant du membre et modifiez-le une fois.
    Si la quantité de données est importante, traitez-la par lots

    update table set p = value where uid in(1,2,3)
    1. Peu importe si la quantité de données est petite et si elles peuvent être placées dans une boucle

    2. En fonction de vos propres besoins

    répondre
    0
  • 世界只因有你

    世界只因有你2017-06-12 09:21:49

    Je n'ai pas compris votre question. Veuillez l'expliquer clairement lorsque je la poserai plus tard, sinon ce sera une question inutile
    Je pense que vous voulez demander à certains membres de définir leurs champs p en même temps, n'est-ce pas ? ensemble de tables p = valeur où uid in(1,2,3)
    `

    Écrivez ce qui suit où conditionnez-vous selon le scénario spécifique

    Ou tu ferais mieux de décrire à nouveau ton problème

    répondre
    0
  • Annulerrépondre