Kod
+----------------+
| wwe_menu |
+--+----+--------+
|ID|Name|Position|
+--+----+--------+
|1 |tra | 3 |
|2 |la | 8 |
|3 |buuu| 5 |
+--+----+--------+
| wwe_menu |
+--+----+--------+
|ID|Name|Position|
+--+----+--------+
|1 |tra | 3 |
|2 |la | 8 |
|3 |buuu| 5 |
+--+----+--------+
chcialbym przy uzyciu jednego zapytania (albo jak najmiejszej ilosci zapytan) wykonac takie cos: (do dyspozycji mam jedynie ID jednego wiersza)
w $ID mam "2" (ID jednego z wierszy)
zamienic wartosci "Position" w wierszu o ID = $ID z wierszem o ID miejszym od $ID (najblizszym)... probowalem robic cos takiego:
<?php /* * PREFIX = wwe_ * $SQL->Query() - wykonuje zapytanie * $SQL->GetField() - pobiera wartosc kolumny z jednego wiersza */ $Query='SELECT Position FROM '.PREFIX.'menu WHERE ID='.$_GET['id']; $CurrentElementPosition=$SQL->GetField($Query); $Query='SELECT Position FROM '.PREFIX.'menu WHERE Position < '.$CurrentElementPosition.' LIMIT 1'; $LowerElementPosition=$SQL->GetField($Query); $Query='(UPDATE '.PREFIX.'menu SET Position = '.$LowerElementPosition.' WHERE Position = '.$CurrentElementPosition.') UNION (UPDATE '.PREFIX.'menu SET Position = '.$CurrentElementPosition.' WHERE Position = '.$LowerElementPosition.')'; $SQL->Query($Query); ?>
niestety trzecie zapytanie (ktore podmiania wartosci zwraca blad):
Kod
Query: (UPDATE wwe_menu SET Position = 1 WHERE Position = 2) UNION (UPDATE wwe_menu SET Position = 2 WHERE Position = 1)
Error #1064: Something is wrong in your syntax obok 'UPDATE wwe_menu SET Position = 1 WHERE Position = 2) ' w linii 1
Error #1064: Something is wrong in your syntax obok 'UPDATE wwe_menu SET Position = 1 WHERE Position = 2) ' w linii 1