Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][mysql] UPDATE - dziwna akcja...
blackneron
post 7.02.2008, 15:10:54
Post #1





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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. ?>
Go to the top of the page
+Quote Post
-Wieviór-
post 7.02.2008, 15:25:51
Post #2





Goście







Ale daj coś więcej kodu, i co wpisujesz w url'a. No i może na jakimś przykładzie wytłumacz ;]
Go to the top of the page
+Quote Post
blackneron
post 7.02.2008, 15:41:26
Post #3





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
-Wieviór-
post 7.02.2008, 15:52:22
Post #4





Goście







Masz jakieś id w tej tabeli? Co w ogóle starasz się osiągnąć?

To jest menu jakieś tak, z kategoriami, czy co?
Go to the top of the page
+Quote Post
mpps
post 7.02.2008, 16:20:29
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 14.03.2003
Skąd: Szczecin

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


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


--------------------
www.mpps.pl
park maszynowy: apache 2.2.22 | php 5.4.0 | MySQL 5.0.10 | phpMyAdmin 3.5.0 | notepad ++ | pilsner urquell
Go to the top of the page
+Quote Post
blackneron
post 7.02.2008, 17:35:38
Post #6





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
-Wieviór-
post 7.02.2008, 18:14:29
Post #7





Goście







  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. ?>
Go to the top of the page
+Quote Post
blackneron
post 8.02.2008, 09:45:06
Post #8





Grupa: Zarejestrowani
Postów: 146
Pomógł: 0
Dołączył: 5.01.2007
Skąd: Gdańsk

Ostrzeżenie: (10%)
X----


Rezultat okazał się taki sam jak w przypadku mojego sposobu.
Chyba na select'cie to zrobię.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 17.06.2025 - 21:59