Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Szukanie wolnej wartości
dareckiphp
post 29.07.2004, 22:29:46
Post #1





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 10.07.2003

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


Odpadam już. Mam całkowitą pustkę i zero pomysłów na rozwiązanie tego problemu.
Muszę zrobić funkcję, która znajdzie pierwszą wolną wartości nie zajętą przez wpisane do bazy rekordy.
np:
do bazy wpisano rekordy - nazwa = 2, 3, 5
system ma znalezc najmniejszą wolną wartość czyli 1

jeśli wpisanymi rekordami będą: 1,2,3,
to znalezioną wartością powinna być liczba 4

Zrobiłem tak:
  1. <?php
  2.  
  3. $sektor_query = mysql_query (&#092;"SELECT nazwa FROM sektor ORDER BY nazwa\");
  4. $sektor_rekordow = mysql_num_rows($sektor_query);
  5.  
  6. for ($sektor_i=0; $sektor_row = mysql_fetch_array($sektor_query); $sektor_i++) { 
  7. $sektor_tab[$sektor_i]= $sektor_row[0]; 
  8. print &#092;"$sektor_tab[$sektor_i], \";
  9. // tu pięknie sobie wypisuję wszystkie zajęte rekordy
  10. }
  11.  
  12. ?>


No i powstaje problem. Poradziłem sobie ze znalezieniem wolnej wartości jeśli jest ona wcześniej niż pierwsza wpisana do bazy. Dalej bylo gorzej.
Pomóżcie


--------------------
Warsztat: WinXP | Apache 2.0.49 | MySQL 4.0.20 | PHP 4
Go to the top of the page
+Quote Post
FiDO
post 29.07.2004, 22:57:04
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Przede wszystkim po co Ci to? Tylko nie pisz "bo chce dodac rekord o pierwszym wolnym ID" tylko dlaczego akurat ten rekord musi byc dodany na pierwszym wolnym, a nie tak jak to robi auto_increment..?


--------------------
Brak czasu :/
Go to the top of the page
+Quote Post
dareckiphp
post 29.07.2004, 23:01:42
Post #3





Grupa: Zarejestrowani
Postów: 107
Pomógł: 0
Dołączył: 10.07.2003

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


Dlatego, żeby uchronić się przed sytuacją kiedy mam stoliki o numerach 1,2 i 1928. Numery te będą służyć do identyfikacji i pisane będą na kartkach przy stolikach w restauracji. Dlaczego nie chcę dopuścić do nieromalnej sytuacji powinniście zrozumieć.


--------------------
Warsztat: WinXP | Apache 2.0.49 | MySQL 4.0.20 | PHP 4
Go to the top of the page
+Quote Post
rogrog
post 30.07.2004, 08:29:21
Post #4





Grupa: Zarejestrowani
Postów: 602
Pomógł: 1
Dołączył: 3.04.2004
Skąd: Trójmiasto (Gdańsk)

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


może tak??

  1. <?php
  2.  
  3. $rekordy = Array(1, 2, 5, 8); //tablica z zajętymi rekordami
  4.  
  5. for( $i=1;; $i++ ){ //po wszystkich liczbach od 1 do nieskończoności biggrin.gif
  6.  
  7. if( not in_array ( $i, $rekordy ) ) { //jeżeli nie ma tej wartości w tablicy
  8. $pierwszy_wolny = $i; //zapisz do zmiennej
  9. break; //i przerwij pętlę
  10. }
  11.  
  12. }
  13.  
  14. ?>


Ten post edytował rogrog 1.08.2004, 14:46:15


--------------------
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: 30.06.2025 - 05:04