Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Innowacyjna księga wpisów, zbyt wiele połączeń?
juzekmj
post
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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
erix
post
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!
Go to the top of the page
+Quote Post
Abaddor
post
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:)
Go to the top of the page
+Quote Post
juzekmj
post
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 smile.gif

Dzięki
Go to the top of the page
+Quote Post
Mchl
post
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.
Go to the top of the page
+Quote Post
phpion
post
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.
Go to the top of the page
+Quote Post
Pilsener
post
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.
Go to the top of the page
+Quote Post
phpion
post
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).
Go to the top of the page
+Quote Post
Abaddor
post
Post #9





Grupa: Zarejestrowani
Postów: 65
Pomógł: 9
Dołączył: 30.06.2009

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


  1. substr(string, od, ile)


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.

  1. $a="moj ciag tekstowy";
  2.  
  3.  
  4.  
  5. $b=substr($a, 4, 5);
  6.  
  7. //$b przyjmie wartość "ciag "



Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
juzekmj
post
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 smile.gif

Ten post edytował juzekmj 22.06.2010, 22:48:41
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 Aktualny czas: 21.08.2025 - 13:00