Proszę o pomoc z pętla for

Tutaj dyskutujemy o PHP oraz zgłaszamy i rozwiązujemy problemy dotyczące tego języka.
lotnik
Nowicjusz
Posty: 4
Dołączył(a): piątek, 10 maja 2013, 10:27

Proszę o pomoc z pętla for

Post przez lotnik »

Witam. Jestem początkujący w PHP wiec niektóre funkcje bynajmniej ich użycie jest dla mnie trudne. To tez proszę o pomoc.

Otóż chcę przerobić pewien skrypt w którym znajduje się właśnie pętla FOR

Code: Zaznacz cały

{for $osada=1 to $max_osada}
w dalszej części jest kod osady w tabelach  i jej funkcje wyświetlane w toltip

po czym kończy się zamknięciem pętli
{/for}

$osada=1 to zmienna od której ma być wyświetlana lista moich osad w tym przypadku pokazuje od 1 osady do "$max_osada" max. osad uzyskanej przez użytkownika.

Niestety styl wyświetlania jest w tabeli czyli osada pod osadą. Ja zaś chciałbym umieścić tło pod owe osady i zastosować rozmieszczenie każdej z nich w innym miejscu, myślałem o funkcji <DIV id=osada1>
i tutaj mój problem jak powtórzyć tą pętlę by osady były rozmieszczone w pozycji np.: przy uzyciu css-a, a nie jedna pod drugą (w formie tabelki)
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Proszę o pomoc z pętla for

Post przez Morfidon »

Witam,

Jeśli dosłownie każda ma być w innym miejscu i nie ma żadnej reguły rozmieszczenia osad to jak najbardziej musisz zastosować id='osada1' etc.

Jednak co będzie, jeśli zmieni się kolejność osad w bazie danych? Osady otrzymają złe parametry CSS. Powinieneś style dla osady przechowywać również w bazie danych i pobierać je przy pomocy php przez co w razie zmian zmienisz je w jednym miejscu.

Możesz też nazwać osady unikalnie w bazie danych i będziesz odwoływał się do nich nie po numerach typu: "osada1... osada2".

Jeśli osady miałyby być obok siebie to wystarczy zastosować float: left; na pierwszą i każda będzie obok siebie.

Pozdrawiam
lotnik
Nowicjusz
Posty: 4
Dołączył(a): piątek, 10 maja 2013, 10:27

Re: Proszę o pomoc z pętla for

Post przez lotnik »

Pozycja osad ma być stała nie zmienna. (szkic przykładowy w załączniku) Standardowo w PA jest określana ilość osad dla usera tak więc ID=osada musi być dostosowane do max ilości planet.
Obecnie wyświetlane jest to w formie tabeli obrazek osady-nazwa usera-pozycja- sojusz etc.. i jak wspomniałem jest to jedna pod druga w formie region:strefa:osada gdzie region i strefa są wybierane.

powracając do <div id=osada1> właśnie próbowałem wpisać go w środek pętli lecz bez skutku

Code: Zaznacz cały

 {for $osada=1 to $max_osada}
	
	<div id=$osada1>
pozostały kod osady
zamkniecie pętli oraz div
<div>
{/for}

Petla wyświetla nam ilość osad ustawionych w PA np 10. więc tabela przedstawi nam 10 osad jedna pod drugą (to funkcja for odpowiada za ilość wyświetlonych osad) ale jak je rozłożyć na mapce ?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Proszę o pomoc z pętla for

Post przez Morfidon »

Jeśli nie ma reguł to pozostaje Ci pozycjonowanie absolutne. Lekcja 33 video kursu xhtml i css.
lotnik
Nowicjusz
Posty: 4
Dołączył(a): piątek, 10 maja 2013, 10:27

Re: Proszę o pomoc z pętla for

Post przez lotnik »

Pozycjonowanie za pomocą DIV ID oraz css-a potrafię. Chodzi mi o pomoc jak użyć wpisu w div dla każdej osady jeśli pętla for ma : {for $osada=1 to $max_osad} w tej pętli są wyświetlane osady wolne i zajęte przez graczy. Powiedzmy że wstawię w środek pętli:

Code: Zaznacz cały

<div  id="$osada" style="position: absolute;left: 444; top: 350;margin-left: auto; margin-top: auto;display:none;">
Wtedy wszystkie układają się obok siebie. Chcę w pętli użyć diva by każdą osadę umieścić w wyznaczonym miejscu chyba że to niewłaściwe rozwiązanie? czyli pętla for tworzy ilość osad wyznaczoną przez admina. np.: 10 a ja chciałbym w niej nakazać gdzie ma się znajdować np osada 1, osada 2 etc. jak sformułować zadanie dla pętli?
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Proszę o pomoc z pętla for

Post przez Morfidon »

Więc zrób tak jak napisałem w pierwszym poście. Dodaj nową kolumnę w bazie danych dot. odpowiedniej osady i tam nadaj parametry, gdzie ma być coś wyświetlane. Po czym po prostu w pętli skorzystaj z tego pola.
lotnik
Nowicjusz
Posty: 4
Dołączył(a): piątek, 10 maja 2013, 10:27

Re: Proszę o pomoc z pętla for

Post przez lotnik »

w bazie mam już tabelę osad ale jak dodać do bazy ułożenie (pozycję) osady. Przyznam szczerze że nie robiłem tego jeszcze.
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: Proszę o pomoc z pętla for

Post przez Morfidon »

Oj no dodaj dwa nowe pola w strukturze np. x i y i dopisz wartości. Oglądałeś kurs dotyczący MySQL cały?
GniadeK
Początkujący
Początkujący
Posty: 11
Dołączył(a): czwartek, 21 października 2010, 13:16

Re: Proszę o pomoc z pętla for

Post przez GniadeK »

lotnik napisał(a):

Code: Zaznacz cały

 {for $osada=1 to $max_osada}
	
	<div id=$osada1>
pozostały kod osady
zamkniecie pętli oraz div
<div>
{/for}

Pozwolę sobie wtrącić
po 1 to jest kod smarty nie php ;)
po drugie w smarty zmienne wstawia się w klamerkach więc to:

Code: Zaznacz cały

<div id=$osada1>
raczej nie zadziała, jeżeli już to raczej coś takiego:

Code: Zaznacz cały

<div id=osada{$osada}>
Post Reply