![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 21.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cześć,
chciałbym umieścić na stronie kwadrat zbudowany z liter, powiedźmy 20x20 punktów. Każdą litere powinno dać sie zmienić na inną w dowolnym momencie, byłoby to coś w stylu księgi wpisów. Już niemal wszystko zaprojektowałem, pozostał jednak problem od strony technicznej. Jedyny sposób jaki mi przychodzi do głowy to bazy MySqla, zrobienie tabeli 20x20 komórek, w każdej komórce jedna litera. Jednak wykonanie 400 połączeń, osobnego dla każdej komórki, przy każdorazowym odświeżeniu strony raczej nie wchodzi w gre. Ponadto wszystkim literą musiałbym przypisać kawałek kodu mówiący jej skąd ma pobierać dane, a zbyt długi kod też nie jest fajną sprawą. Znacie jakąś lepszą metode? Może dałoby sie pobrać tabele jako całość, a dopiero potem ją rozdzielić i rekordy przypisać do odpowiednich pól? Pozdrawiam, Juzekmj. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Uhm, ale sam kwadrat 400 komórek da się wyciągnąć jednym zapytaniem, chyba że nie mówisz nam wszystkiego.
-------------------- ![]() ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym zrobił inaczej trochę. Pewnie też źle, ale na szybkiego myślałem:)
Zrób 20 rekodów, w każdym string z 20 znakami:) I przy wypisywaniu pobieraj 1,2,3,4 znak tej tablicy znaków(stringa). Masz wtedy 20 zapytań, a reszta to PHP, albo JavaScript. Podobnie przy edycji. Zmieniasz np. 5 znak w tym ciągu. Moim zdaniem lepsze wyjście. A możesz tak samo zrobić na jednym rekordzie, z BARDZO długim ciągiem znaków. I wypisywać pierwsze 20 w jednym rzędzie, drugie 20 w drugim itd. Pozdrawiam:) |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 21.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
erix - jasne że można, tylko jak potem podzielić rekord na poszczególne litery? Ostatecznie każda literka ma być osobnym linkiem, po kliknięciu pojawi się wirtualna klawiatura (pływający div) za pomocą której będzie można zmienić ją na inną.
Abaddor - fajny pomysł, ale tak jak napisałem erix'owi, pokaż mi kod, najlepiej w php, który podzieli rekord na 1,2,3,4 itd znak i będzie po problemie ![]() Dzięki |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
A nie prościej 'wąską' tabelę z 400 wierszami? Wszak struktura w jakiej przechowuje się dane nie musi odpowiadać temu jak dane są prezentowane.
Robisz SELECT * FROM tabela Potem zagnieżdzona pętla for, żeby wydrukować to w kwadracie. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Również nie wiem czy do końca zrozumiałem ideę, ale chyba chodzi Ci o wykonanie czegoś a'la szachownica czy mapa do gry w statki, ale na każdym polu ma znaleźć się literka będąca linkiem do czegoś tam. Jeśli tak to słuszne wydaje mi się:
litery [id, x, y, litera, adres] W sumie możesz postawić klucz główny na polach x + y, bo zapewne na jednym polu nie może być kilka literek. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Tak to należy zrobić, ale i tak trzeba będzie pobrać 400 rekordów. Ja bym to zrobił na plikach (xml lub tablica zserializowana) i aktualizował plik tylko wtedy, gdy zmieni się baza - jest z tym trochę zachodu, ale na pewno będzie świetnie działać jak już się uruchomi.
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Zawsze można zastosować cache danych. Oparcie tego o bazę danych wydaje mi się jednak rozsądniejsze chociażby z racji możliwości przechowywania informacji i klikach w poszczególne literki (wówczas przyda się osobne pole id).
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 65 Pomógł: 9 Dołączył: 30.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Funkcja wycina i zwraca z ciągu "string" ilość znaków równą "ile" zaczynając od pozycji "od". Jeżeli "od" jest ujemne funkcja zacznie odcinać znaki licząc od końca ciągu "string". Parametr "ile" jest opcjonalny i jeśli zostanie pominięty funkcja wytnie wszystkie znaki zaczynając od pozycj "od" do końca ciągu. Jeśli parametr "ile" jest ujemny funkcja wytnie wszystkie znaki zaczynając od pozycji "od" do pozycji "ile" licząc od końca.
Pozdrawiam ![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 21.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
ok, dzięki! problem rozwiązany.
Nie wiem jak mogłem zapomnieć o dobrodziejstwie jakim jest pętelka, nie wpadłem na to.. wycinanie również spisuje sie nieźle. Jeszcze potestuje oba sposoby i lepszy wrzucę na stronke ![]() Ten post edytował juzekmj 22.06.2010, 22:48:41 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:00 |