Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] sekwencyjna numeracja pol wybranych rekordow
PiXel2.0
post 30.12.2007, 11:26:42
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Czy mozliwe jest ponumerowanie konkretnych pol wybranych rekordow tabeli questionmark.gif

Mam taka tabele w ktorej przechowuje indywidualne dzialy uzytkownikow:

+-----------+
| user_dirs |
+-----------+
| dir_id |
| dir_name |
| user_id |
| sequence |
+-----------+

Do pobierania dzialow uzytkownika uzywam zapytania:
  1. SELECT * FROM user_dirs WHERE user_id = {$user_id} ORDER BY sequence;

sequence oznacza kolejnosc wyswietlania dzialow i przy tworzeniu nowego dzialu do pola sequence zapisywana jest liczba juz istniejacych dzialow uzytkownika dla ktorego dzial jest tworzony.

Problem polega na tym, ze gdy uzytkownik usunie dzial to w sequence pojawia sie luka.
Istnieje tez opcja zmiany kolejnosci wiec nie moze byc zadnych brakujacych numerow w sequence.

ProbleM rozwiazywaloby zapytanie numerujace pole sequence w rekordach danego uzytkownika.

Czy mozna to zrobic w jednym zapytaniu SQL questionmark.gif

Jesli nie to chyba bede musial zrobic to tak po stronie PHP:
  1. <?php
  2. $result = mysql_query("SELECT dir_id FROM user_dirs WHERE user_id = {$user_id} ORDER BY sequence");
  3. for($i = 0; $row = mysql_fetch_num($result); $i++)
  4. mysql_query("UPDATE user_dirs SET sequence = {$i} WHERE dir_id = {$row[0]}");
  5. ?>

Ale to chyba nie jest zalecane...

Ten post edytował PiXel2.0 30.12.2007, 11:28:35
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
AxZx
post 30.12.2007, 12:10:05
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 55
Dołączył: 1.03.2005
Skąd: śląsk

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


jak bedziesz usuwal rekord to to odrazu zmieniaj wartosc sequence w pozostalych rekordach
czyli to by bylo cos jak
update ... where sequence > {$sequence_usuwanego_redkordu}


--------------------
aplikacje internetowe | Symfony
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: 18.07.2025 - 11:37