Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Uaktualnianie wielu rekordów o różnym id.
Forum PHP.pl > Forum > Przedszkole
Time
Witam.

Posiadam tabelę users_units:



Chciałbym uaktualnić kolumnę 'ile' dla danego user_id i unit_id jednym zapytaniem.

Przykładowo:
zmieniam wartości 50, 20 i 12 a reszta zostaje bez zmian.
slashynsky
  1. UPDATE ile=ile+1 WHERE user_id=8 AND unit_id IN (1,2,3)
NickOver
Jeśli masz stałą liczbe unit_id to:
  1. echo '<form action="adres strony (np.index.php)" method="POST">
  2. <input type="text" name="1" />
  3. <input type="text" name="2" />
  4. <input type="text" name="3" />
  5. <input type="text" name="4" />
  6. <input type="text" name="5" />
  7. <input type="text" name="6" />
  8. <input type="text" name="7" />
  9. <input type="text" name="8" />
  10. <input type="text" name="9" />
  11. <input type="text" name="10" />
  12. <input type="submit" name="ok" value="Aktualizuj">
  13. </form>';
  14. if(isset($_POST['ok']))
  15. {
  16. $a = trim($_POST['1']);
  17. $b = trim($_POST['2']);
  18. $c = trim($_POST['3']);
  19. $d = trim($_POST['4']);
  20. $e = trim($_POST['5']);
  21. $f = trim($_POST['6']);
  22. $g = trim($_POST['7']);
  23. $h = trim($_POST['8']);
  24. $i = trim($_POST['9']);
  25. $j = trim($_POST['10']);
  26. if(isset($a)
  27. {
  28. UPDATE ile=a WHERE unit_id=1;
  29. }
  30. if(isset($b)
  31. {
  32. UPDATE ile=a WHERE unit_id=2;
  33. }
  34. if(isset($c)
  35. {
  36. UPDATE ile=a WHERE unit_id=3;
  37. }
  38. if(isset($d)
  39. {
  40. UPDATE ile=a WHERE unit_id=4;
  41. }
  42. if(isset($e)
  43. {
  44. UPDATE ile=a WHERE unit_id=5;
  45. }
  46. if(isset($f)
  47. {
  48. UPDATE ile=a WHERE unit_id=6;
  49. }
  50. if(isset($g)
  51. {
  52. UPDATE ile=a WHERE unit_id=7;
  53. }
  54. if(isset($h)
  55. {
  56. UPDATE ile=a WHERE unit_id=8;
  57. }
  58. if(isset($i)
  59. {
  60. UPDATE ile=a WHERE unit_id=9;
  61. }
  62. if(isset($j)
  63. {
  64. UPDATE ile=a WHERE unit_id=10;
  65. }
  66. }

Jeśli nie to pętla i po kłopocie wink.gif
ZaXaZ
UPDATE `tabela` SET `ile` = [nowa_wartosc] WHERE `ile` IN (50, 20, 12) AND user_id = [jakieś_id] AND unit_id = [jakieś_id];
mmmmmmm
  1. UPDATE tabela SET wartosc=$NOWA_WARTOSC WHERE (user_id, unit_id) IN ((8,2), (8,3), (8,1))
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.