Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Update wielu różnych rekordów
Forum PHP.pl > Forum > Przedszkole
sliwa007
Witam, mam taką tabelę która nazywa się config i są w niej takie dane:

'name'- 'value'
'title'- 'jakiś tam tytul'
'opis'- 'jakiś tam opis'
'photo'- 'url obrazka'


i teraz chcę za pomocą formularza zauktualizować całą kolumnę value. Robię to teraz tak że dla każdego rekordu mam osobne zapytanie. Wygląda to mniej więcej tak:

  1. if(isset($_POST['submit'])) {
  2.  
  3. $title = $_POST['title'];
  4. $opis = $_POST['opis'];
  5. $photo = $_POST['photo'];
  6.  
  7. mysql_query("UPDATE config SET value = '$title' WHERE name = 'title'");
  8. mysql_query("UPDATE config SET value = '$opis' WHERE name = 'opis'");
  9. mysql_query("UPDATE config SET value = '$photo' WHERE name = 'photo'");
  10. }


Wiadomo chciałbym to udpatować za pomocą jednego zapytania. I tutaj proszę o pomoc jak można by to rozwiązać.
mortus
Bez MySQL-owych instrukcji warunkowych się nie obejdzie:
  1. $sql = "UPDATE `config` SET `value` = CASE `name` WHEN 'title' THEN {$title} WHEN 'opis' THEN {$opis} WHEN 'photo' THEN {$photo} END";

Być może zadziała, jednak warto by było ograniczyć rekordy korzystając z jakiejś unikalnej kolumny klucza (jak np. id):
WHERE `id` IN (id_opcji_1, id_opcji_2, id_opcji_3).
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.