Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] UPDATE - dziwna akcja...
Forum PHP.pl > Forum > Przedszkole
blackneron
Witam.
Mam taki problem, chciałbym uporządkować rekordy, tzn. jeden ma mieć o 1 więcej a drugi o 1 mnie. Tak żeby "wymienili" się pozycjami.
Dziwnym trafem uaktualnieniu o 1 nie dodaje do istniejącej liczby 1 tylko więcej, czasami 6, 10.
Przy odejmowaniu nie ma problemu.
Proszę o wskazówkę.

  1. <?php
  2. $ai=mysql_query("select * from menu where id_kat='$_GET[up]'");
  3.  
  4. $lip=mysql_query("select * from menu where pozostale > '$so[pozostale]' limit 1");
  5.  
  6. mysql_query("update menu set pozostale = pozostale-1 where id_kat='$rr[id_kat]'");
  7.  
  8. mysql_query("update menu set pozostale = pozostale+1 where id_kat='$_GET[up]'");
  9. ?>
Wieviór
Ale daj coś więcej kodu, i co wpisujesz w url'a. No i może na jakimś przykładzie wytłumacz ;]
blackneron
Ok.
index.php?up=4

$_GET[up] to jest id_kat

Zasada jest taka, że sortuje ostatecznie po 'pozostale'.
np.

id_kat | pozostale
4 7
5 8

teraz do pozostalale (7) dla id_kat=4 dodajemy 1
a od pozostale (8) dla id_kat=5 odejmujemy 1

żeby ostatecznie było:


id_kat | pozostale
4 8
5 7
Wieviór
Masz jakieś id w tej tabeli? Co w ogóle starasz się osiągnąć?

To jest menu jakieś tak, z kategoriami, czy co?
mpps
polecam:
http://forum.php.pl/index.php?showtopic=86812&hl=

tam masz gotowe rozwiązanie (sam prawie że o to samo pytałem wczoraj)

pozdrawiam
m
blackneron
Cytat(Wieviór)
Masz jakieś id w tej tabeli? Co w ogóle starasz się osiągnąć?

To jest menu jakieś tak, z kategoriami, czy co?


Moja tabelka:
id_kat (auto_increment), tytul, pozostale

kolumna 'pozostale' jest ustawione tak, żeby było 1,2,3, itd.

i teraz chodzi o to, że mam na stronie te rekordy wyświetlone, przy każdym strzałka - góra i dół.
Po naciśnięciu na górę np. jeżeli jest to 3-cia pozycja to wskoczy na 2. Z kolei rekord który był na pozycji 2-giej wskoczy na pierwszą.

Chyba jasne.
Wieviór
  1. <?
  2. $sql = "SELECT pozostale FROM menu where id_kat='".$_GET[up]."'";
  3. $wykonaj = mysql_query($sql);
  4. $pozycja = mysql_fetch_array($wykonaj);
  5.  
  6. $sql = "UPDATE menu SET pozostale = pozostale+1 WHERE pozostale='".$pozycja."-1'";
  7.  
  8. $sql = "UPDATE menu SET pozostale = pozostale-1 WHERE kat_id='".$_GET[up]."'";
  9. ?>
blackneron
Rezultat okazał się taki sam jak w przypadku mojego sposobu.
Chyba na select'cie to zrobię.
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.