![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Witam,
mam dwie następujące tabele: turnieje_zapisy (pola: nazwa_turnieju,zawodnik) oraz turnieje_pary (pola: nazwa_turnieju,gracz1,gracz2). Ogólnie chodzi o to, że do tabeli turnieje_zapisy zapisywane są nazwiska ludzi jedno pod drugim, którzy chcą wziąć udział w turnieju, w tabeli turnieje_pary wylosowane do gry. Dobór w pary wygląda tak, że sprawdzam, ile zapisanych jest w turnieje_zapisy, i pierwszą połowę zapisanych przenoszę do turnieje_pary (gracz1) za pomocą INSERT INTO ... . Drugą połówę chciałbym UPDATE'ować do kolumny gracz2. Problem jest w tym, że UPDATE mi źle działa, a konkretnie LIMIT - jeśli np. pętla biegnie od 8 do 4, to zamiast UPDATE'ować rekordy z kolejnymi wartościami LIMIT $i,1, on leci jak przez sito, po czym 4 razy UPDATE'uje ten sam rekord, w tym przypadku ten, który jest pod LIMIT 4,1. Tak jakby w kolejnych przebiegach pętli $i wcale nie było zmniejszane wewnątrz zapytania.
Proszę o podpowiedź Z góry dziękuję |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 220 Pomógł: 19 Dołączył: 25.04.2009 Ostrzeżenie: (0%) ![]() ![]() |
Trzymanie jakichś "kreskowych" rekordów w bazie jest strasznie nieprofesjonalne. Te kreski powinieneś dodawać już po odczycie z bazy, na samym wyjściu za pomocą html/css.
Na końcu nie powinno być przypadkiem
? Ten post edytował qrzysztof 28.11.2011, 17:51:28 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 355 Pomógł: 50 Dołączył: 20.08.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
A nie pomyślałeś o tym, żeby nie męczyć mysqla tym wszystkim, sparować ludzi w php i insertować juz gotowe rekordy? (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
qrzysztof, po pierwsze jeśli będzie nieparzysta liczba, to ktoś nie będzie miał pary do gry i zazwyczaj na turniejach tenisowych daje mu się 'dziką kartę' i jego nieistniejącego 'wirtualnego' rywala właśnie się kreskuje. Ok, jak skrypt będzie działał, to zrobię jak mówisz.
Po drugie, na końcu nie powinno być $i.",1, bo to jest polecenie UPDATE. A w tym poleceniu nie można używać LIMIT z dwoma parametrami, bo będzie błąd składni. http://dev.mysql.com/doc/refman/5.0/en/update.html hondek, właśnie nie bardzo mam pomysł, jak taką funkcję napisać. (IMG:style_emoticons/default/wink.gif) bezpośrednio w bazie jest teoretycznie łatwiej. Ten post edytował jg44 28.11.2011, 18:24:16 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 355 Pomógł: 50 Dołączył: 20.08.2007 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
przeciez spokojnie możesz wykorzystań arraye np.
tworzysz arraya: pobierasz sobie pierwszą połowę zawodników do $mysql_players, a do $others_players resztę i przepisujesz do tablicy wyniki:
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 14 Dołączył: 14.07.2011 Skąd: Gliwice / Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie, niezły pomysł (IMG:style_emoticons/default/wink.gif)
dzięki (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 22:19 |