![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od razu chciałbym zaznaczyć że dopiero zaczynam z językami PHP i MySQL, traktuje to bardziej jako hobby oraz naprawdę coś przyjemnego ![]() Nie mogę nigdzie znaleźć odpowiedzi na swoje pytanie. Chciałbym uzyskać funkcję która obliczy mi z przedziału licz najmniejsze puste miejsce. Chodzi o to że wyobraźcie sobie tabliczkę czekolady, posiada załóżmy 40 kawałków. Nagle ktoś wyciąga ze środka jeden kawałek i z końca drugi kawałek. Funkcja miała by polegać na obliczeniu pierwszego pustego miejsca, nie tego drugiego, nie ostatniego lecz pierwszego. Dokładniej mój problem wygląda tak: Potrzebuje uzupełniać pewien program kawałek po kawałku. Takich kawałków jest aż 45. Liczymy od 0 do 44!. Więc zakres 0 - 44. Gdyby chodziło o tylko wypełnianie pustych 45 kwadratów kawałkami, nie było by problemu. Lecz jest możliwość wyjęcia w dowolnej chwili dowolnego kawałka, kwadracika ![]() Załóżmy mamy takie rekordy: Kod 0 1 2 3 5 7 10 13 15 16 19 20 21 22 37 38 40 41 42 44 45 Widzimy ile posiada pustych pól po segregacji, no i problem w tym że chciałbym automatycznie zmienną po wpisaniu np. numeru ID grupy tych rekordów, aby dodał PIERW najmniejszy brakujący element. Czyli w tym wypadku 4. Gdy 4 dopisze, miałby uzupełnić "6" itd. W wypadku gdy znowu wyciągniemy, on wraca i uzupełnia pierwszy brakujący. Nie wiem, nie mam zielonego pojęcia jak ustawić "SELECT" z jakim atrybutem ![]() Gdyby ktoś byłby tak miły i pomógł mi w ustaleniu tej funkcji zmiennej. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, czy dobrze Cie zrozumialem, wiec moge nie rozwiazac Twojego problemu. Moze po prostu pobierz identyfikatory wszystkich "kawalkow" (rekordow) i przelec je petla po kolei sprawdzajac, czy identyfikator kolejnego rekordu jest o 1 wiekszy od poprzedniego. Jezeli jest wiekszy, niz o 1 to znaczy, ze czegos brakuje i trzeba to uzupelnic. Zapytania insert (te ktore dodaje brakujace kawalki) zapisuj do zmiennej i wykonaj za petla (zamiast przykladowo 10 zapytan wykonasz 1 zapytanie dodajace brakujace kawalki)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, czy dobrze Cie zrozumialem, wiec moge nie rozwiazac Twojego problemu. Moze po prostu pobierz identyfikatory wszystkich "kawalkow" (rekordow) i przelec je petla po kolei sprawdzajac, czy identyfikator kolejnego rekordu jest o 1 wiekszy od poprzedniego. Jezeli jest wiekszy, niz o 1 to znaczy, ze czegos brakuje i trzeba to uzupelnic. Zapytania insert (te ktore dodaje brakujace kawalki) zapisuj do zmiennej i wykonaj za petla (zamiast przykladowo 10 zapytan wykonasz 1 zapytanie dodajace brakujace kawalki) O Właśnie, dobrze to opisałeś, jak zrobić pętle sprawdzającą? Mógłbyś pomóc? ![]() Pozdrawiam ;D |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 380 Pomógł: 59 Dołączył: 24.04.2010 Skąd: London Ostrzeżenie: (0%) ![]() ![]() |
Proszę zapytanie, które wskaże Ci pierwszy wolny rekord wystarczy troszkę dopisać w PHP i gotowe
![]()
-------------------- |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 12.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm kod mi trochę mówi ale nadal nie mogę dojść jak to zrobić.
Mam takie wyniki, rekordy w bazie: Kod owner_ID window pos count 27 MALL 2 1 27 MALL 1 1 27 MALL 0 1 27 MALL 3 1 27 MALL 6 1 27 MALL 7 1 27 MALL 18 1 Chodzi o to aby SELECT wybrał mi brakujące pole aby potem INSERT'em wsadzić odpowiedni REKORD z brakującą zmienną $pos. SELECT musi wybrać pusty "pos" "WHERE owner_ID = '27' AND window = 'MALL'" Nie mam tam rekordu typu 27 MALL NULL count i rekordy nie są segregowane w bazie, wszystko musi robić zapytanie ![]() Próbowałem pokombinować z Twoim zapytaniem ale nie mogłem nic zdziałać. Pozdrawiam Ary Ten post edytował Aryman 12.12.2010, 16:12:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 17:59 |