Maison > Questions et réponses > le corps du texte
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 ? !
漂亮男人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'];
}
欧阳克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`);
仅有的幸福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)
Peu importe si la quantité de données est petite et si elles peuvent être placées dans une boucle
En fonction de vos propres besoins
世界只因有你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