Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] UPDATE + CASE
kamil_lk
post
Post #1





Grupa: Zarejestrowani
Postów: 325
Pomógł: 33
Dołączył: 31.05.2008

Ostrzeżenie: (0%)
-----


Cześć.
Napisałem sobie funkcję do sortowania obiektów w tabeli.
Sęk w tym, że gdy dodaję rozróżnienie na typ obiektu to zapytanie update zamienia mi wszystkie pozycje na 0.
  1. $query = "UPDATE `survey_objects` SET `position` = CASE `id_object`";
  2. foreach($sort_list as $key => $value){
  3. foreach($value as $key2 => $value2){
  4. $query .= " WHEN " . $value2 . " AND `id_object_type` = ".$key." THEN " . $key2;
  5. }
  6. }
  7. $query .= " END WHERE `id_survey` = :id_survey";


Powyższa funkcja zwraca takie oto zapytanie:
  1. UPDATE `survey_objects` SET `position` =
  2. CASE `id_object`
  3. WHEN 7 AND `id_object_type` = 5 THEN 1
  4. WHEN 8 AND `id_object_type` = 5 THEN 2
  5. WHEN 9 AND `id_object_type` = 5 THEN 3
  6. WHEN 6 AND `id_object_type` = 5 THEN 4
  7. END
  8. WHERE `id_survey` = 1


Czy ten zapis jest poprawny?
Jeżeli nie to gdzie leży problem i jak mogę go rozwiązać?

Ten post edytował kamil_lk 22.07.2014, 10:44:43
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 03:10