pioch
3.02.2007, 12:01:28
witam
Na jakiej zasadzie, w jaki sposob mozna uzyskać takie efekt jak na dołączonym zdjęciu...

prosze o pomoc...
Cienki1980
3.02.2007, 13:16:17
A w czym masz problem

Z wyciągnięciem danych czy z ułożeniem tego w taki sposób

Wszystko zależy od tego jak masz dane zapisane w bazie. Potem wyświetlenie tego to już kwestia odpowiedniego ułożenia. Pokaż jak przechowujesz dane to może coś się wymyśli.
pioch
3.02.2007, 22:58:57
chodzi mi oto by samo sie zmieniało nastepna, poprzednia
wyświetlic dane umiem, ale musze recznie zmieniać kolejki,
np. poprzednia (kolejka 7 ), nastepna ( kolejka 8)
Cienki1980
3.02.2007, 23:44:52
Dalej nie wiem o co chodzi

. Co rozumiesz przez to, że ma się samo zmieniać
plisek
4.02.2007, 02:31:01
Proponuje powalczyc z if'ami lub ze switch'em
bo jak rozumiem, nie imiesz wyswietlic napisu uzalezniajac go od daty
sprobuj opisac problem dokładniej, bo troche ciezko domyslac sie o co Ci chodzi, tymbardziej ze jasnowidzów Ci u nas deficyt ;/
pozdr
pioch
4.02.2007, 14:59:42
plisek samo sedno sprawy...
chciałbym uzaleznić to od daty, ale nie mam wiedzy jak to zrobić :/
moze podpowiesz..., lub jakiś przykład
Cienki1980
4.02.2007, 15:18:03
Zakładam, że informacje na temat kolejek ( czy też terminarzu .. jakokolwiek się to nazywa ) przechowujesz w bazie danych. Powinieneś mieć tam kolumnę wskazująca na daty danych spotkań i wg niej wyciągać dane i odpowiednio formatować.
Pokaż jak przechowujesz dane w bazie i jakbyś chciał je wyciągać to może coś lepszego pomyślimy
pioch
4.02.2007, 15:36:49
terminarz :
id,kolejka, kiedy, przeciwnik, gospodarz
Cienki1980
4.02.2007, 15:40:35
Zakładam, że pole 'kiedy' jest w formacie "rrrr-mm-dd".
Wyciągasz dane za pomocą zapytania gdzie sortujesz po dacie :
SELECT * FROM terminarz ORDER BY kiedy DESC;
Wyciągasz wszystkie dane po czym w pętli wyświetlasz rekordy. Żeby nie wyświetlać za każdym razem daty wyświetlasz ją tylko w pierwszym <tr> a potem sprawdzasz z wierszem poprzednim czy data się zmieniła. Jeżeli jest taka sama to wyświetlasz tylko dane o meczu bez daty a w przypadku gdy jest inna od daty z wiersza poprzedniego wyświetlasz nowy wiersz z nowa data i wyswietlasz dalej dane.
pioch
4.02.2007, 18:17:14
Cienki1980 a moze podać przykład....
nie potrafie tego zrobic
maryaan
4.02.2007, 18:22:28
wybieraj po kolejce a nie dacie, moga byc rozne daty w jednej kolejce
Cienki1980
4.02.2007, 18:24:09
Będzie schematycznie, więc nie kopiuj całości tylko zobacz na jakiej zasadzie ma to działać:
<?php
$res=mysql_query("select * from terminarz order by kiedy desc"); //jezeli tak jak maryaan mowi ze daty jednej kolejki moga byc rozne to sortuj po k
olejce
//czyli tak
// $res=mysql_query("select * from terminarz order by kolejka desc");
{
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td>".$row['gospodarz']."</td><td>".$row['przeciwnik']."</td></tr>"; $old_row=$row;
}
?>
pioch
4.02.2007, 18:34:49
maryaan ma racje , przeciez kolejka moze byc rozłożona na 2, 3 dni nieraz ...
Cienki1980 dzieki za przykład , wykorzystam w newsach

)
więc zabawa jest od nowa, nowe okoliczności... ech
moze ktoś ma na to rozwiązanie...
maryaan
4.02.2007, 18:46:28
ale na co chcesz rozwiazanie? wybierasz dane z kolejki xx i dostajesz tablice zawierajaca liste spotkan, wyswietlasz, pobierasz nastepna kolejkie itd. Jesli tego nie potrafisz zrobic bez gotowca to ciezko bedzie cos wiekszego stworzyc
pioch
4.02.2007, 18:49:26
potrafie to zrobić....
ale chodzi mi oto ze musze " ręcznie " zmieniac id kolejki
a chciałbym aby to się zmieniało w zależności od daty !
Cienki1980
4.02.2007, 18:57:02
No ale w czym problem

Wchodzisz na stronę. Skrypt php pobiera date aktualną za pomocą date(). Sprawdzasz czy w bazie są jakieś spotkania w tej dacie i np 3 dni plus/minus ... czyli w obrebie tygodnia. Na podstawie tych dwóch dat wyciągasz spotkania.
pioch
4.02.2007, 18:58:40
ale nie umiem tego własnie zrobić...
mozesz pokazac przykład
Cienki1980
4.02.2007, 19:05:03
Tym razem odeślę Ciebie do manuala:
Funkcja
date() i przykład 3.
A w zapytaniu użyj np BETWEEN;
pioch
4.02.2007, 19:15:59
SELECT * FROM terminarz BETWEEN data1 AND dat2 ORDER BY kolejka DESC
cos takiego
Cienki1980
4.02.2007, 19:35:28
Sprawdź czy zadziała ... zobacz jak tworzyć daty wstecz i do przodu ... a na pewno ruszysz do roboty.
A tak przy okazji. Jeżeli wyświetlasz wszystkie rekordy z tabeli terminarz ( a na pewno te ostatatnie - czyli z najwyższą kolejką ) to gdzie tu zmiana id_kolejki

Po wejściu na stronę zawsze będziesz miał najbardziej aktualne wpisy.
pioch
4.02.2007, 19:54:05
nie chce ruszyć,,,, ec hhh
daty zrobiłem tak
data1= = mktime (0,0,0,date("m") ,date("d")+5,date("Y"));
dat2= = mktime (0,0,0,date("m") ,date("d")+5,date("Y"));
Cienki1980
4.02.2007, 19:57:13
To co zrobiłeś zwróci Ci datę w postaci uniksowego znacznika czasu ( liczba sekund ). Obie daty robisz na +5 dni.
<?php
?>
Tak powinno być lepiej.
pioch
5.02.2007, 17:55:04
jednak po przemysleniu z tą data też jest kiepski pomysł....
wymysliłem lepszy , ale licze na pomoc bo nie wiem jak to wykonać
a więc do rzeczy...
mozna sprawdzic czy dane pole jest uzupełnione ( wynik meczu )
ostatnia kolejka ( to ostatni rekord z wpisanym wynikiem )
nastepna koleja ( to pierwszy rekord w którym nie jest wpisany wynik )
czy można sprawdzać czy dane pole jest uzupełnione czy puste ?
Cienki1980
5.02.2007, 18:11:31
Jeżeli dobrze rozumiem, to mecze np kolejki 10 są rozgrywane w jakichś tam datach, ale wszystkie mają wpis kolejka=10;
Jeżeli tak jest to możesz wyciągać dane w ten sposób
SELECT * FROM terminarz ORDER BY kolejka DESC
Sprawdzająć w pętli wyświetlającej czy
<?php
$wynik=='';
//lub
?>
decydujesz czy wyświetlić wynik, czy wyświetlić kiedy będzie dane spotkanie rozgrywane.
pioch
5.02.2007, 18:37:21
właśnie oto mi chodzi....
ale tą zmienna $wynik chciałbym uzaleznić od pola w bazie danych...
czy idzie tak zrobić, aby sprawdzało czy jest wpis cxzy go brak
Cienki1980
5.02.2007, 18:44:18
<?php
if($row['wynik']=='')
{
// cos tam robisz
}
//lub
{
// cos tam robisz
}
?>
Już wiesz jak
pioch
5.02.2007, 18:56:30
nio teraz wiem....
tyle ze mój wynik jest zawarty w 2 polach
tzn $row['gol1'] i $row['gol2']
// edit
moge sprawdzic jedno pole..... np $row['gol1']
Cienki1980
5.02.2007, 19:29:46
Jeżeli wpisujesz wynik 2:0 jako gol1=2 a gol2=0 to wystarczy że będziesz sprawdzał tylko jedno pole, bo skoro jedno jest ustawione to znaczy, że to drugie też jest ustawione.
Jeżeli jednak wpisujesz taki wynik jako gol1=2 gol2='' to sprawdzaj oba pola jednocześnie.
<?php
{
//wyswietlasz wyniki
}
else
{
//wyswietlasz terminy
}
?>
pioch
5.02.2007, 21:37:25
Jak połaczyć te 2 kody....
<?php
$res=mysql_query("SELECT m.kiedy, m.kolejka, m.gol1, m.gol2 k1.id as id1, k2.id as id2, k1.na
zwa as nazwa1, k2.nazwa as nazwa2 FROM mecz as m, druzyny as k1, druzyny as k2 WH
ERE k1.id = m.gospodarz AND k2.id = m.przeciwnik order by kiedy desc");
echo "<table width="200">"; {
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td><font class="LOGINHD11
">".$row['nazwa1']."</td><td>.$row['gol1']."-.$row['gol2']."<td>".$row['nazwa2']."</td></tr>"; $old_row=$row;
}
?>
z tym
<?php
{
//wyswietlasz wyniki
}
else
{
//wyswietlasz terminy
}
?>
Cienki1980
5.02.2007, 21:50:09
Nie no to już za dużo ... napisałem co i jak nawet zrobiłem komentarze w tym krótkim kodzie co masz zrobić kiedy .. więc się trochę postaraj.
pioch
5.02.2007, 21:55:51
Cienki1980 nie chodzi mi o gotowca....
ale ja coś zle zrobiłem chyba
<?php
$res=mysql_query("SELECT m.kiedy, m.kolejka, m.gol1, m.gol2, k1.id as id1, k2.id as id2, k1.n
azwa as nazwa1, k2.nazwa as nazwa2 FROM mecz as m, druzyny as k1, druzyny as k2 W
HERE k1.id = m.gospodarz AND k2.id = m.przeciwnik
order by kolejka desc");
{
echo "<table width="200">"; {
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td><font class="LOGINHD11
">".$row['nazwa1']."</td><td>".$row['gol1']."-".$row['gol2']."</td><td>".$row['nazwa2']."</td></tr>";
$old_row=$row;
}
}
else
{
echo "<table width="200">"; {
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td><font class="LOGINHD11
">".$row['nazwa1']."</td><td>".$row['nazwa2']."</td></tr>";
$old_row=$row;
}
}
?>
wyświetaja mi sie wszytskie kolejki.....
niezależnie czy sa wpisane bramki czy nie :/
nie wiem w czym bład
stad moja prośba na spojrzenie fachowym okiem
Cienki1980
5.02.2007, 22:35:03
najpierw masz warunek if gdzie korzystasz ze zmiennej $row .. którą dopiero później ustawiasz.
Zrób najpierw pętlę while i wewnątrz tej pętli zrób warunek if($row['gol1'].... )
W zależności od tego wyświetlisz odpowiednie dane.
pioch
5.02.2007, 23:07:03
dzieki za porade poprawiłem kod
<?php
$res=mysql_query("SELECT m.kiedy, m.kolejka, m.gol1, m.gol2, k1.id as id1, k2.id as id2, k1.n
azwa as nazwa1, k2.nazwa as nazwa2 FROM mecz as m, druzyny as k1, druzyny as k2 W
HERE k1.id = m.gospodarz AND k2.id = m.przeciwnik AND kolejka ='1'
order by kolejka desc");
echo "<table width="200">"; {
{
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td><font class="LOGINHD11
">".$row['nazwa1']."</td><td>".$row['gol1']."-".$row['gol2']."</td><td>".$row['nazwa2']."</td></tr>";
$old_row=$row;
}
else
{
if($row['kiedy']!=$old_row['kiedy'])
echo "<tr><td>".$row['kolejka']."</td><td>".$row['kiedy']."</td></tr>";
echo "<tr><td><font class="LOGINHD11
">".$row['nazwa1']."</td><td>".$row['nazwa2']."</td></tr>"; $old_row=$row;
}
}
?>
ale wyswietla tylko pierwsza kolejke z golami....
co trzeba zrobic by wyświetlalo ostatnia kolejke z bramkami i pierwsza bez bramek?
maryaan
5.02.2007, 23:14:51
Cytat(pioch @ 5.02.2007, 23:07:03 )

ale wyswietla tylko pierwsza kolejke z golami....
dales warunek
Kod
AND kolejka ='1'
to wyswietla tylko pierwsza....
Cytat
co trzeba zrobic by wyświetlalo ostatnia kolejke z bramkami i pierwsza bez bramek?
skonstruowac zapytanie ktore wybierze ostatnia kolejke z bramkami a pozniej pierwsza bez bramek, troche wlasnej inwencji bo i tak juz gotowca dostales na talerzu...
pioch
5.02.2007, 23:37:44
no dobrze dodałem limit 8 do zapytania ( 8 meczy ma dana kolejka ) i oczywiście usunołem kolejka ='1' przeoczenie....
ale nadal nie wyswietla kolejek bez wpisania gol1 and gol2 czyli tego drugiego warunku....
Cienki1980
5.02.2007, 23:56:31
Usuń $old_row=$row z linijek 22 i 30 i umieść to w 33 lini ( między klamrami )
pioch
6.02.2007, 00:01:11
nie pomaga...
nadal nie wyświetla kolejki w której nie ma wypełnionego pola gol1 i gol2
maryaan
6.02.2007, 00:23:07
ni ewiem czy ja zle widze czy Ty filtrujesz rekordy dopiero w php?

baza ma wybrac TYLKO te rekordy ktore chcesz wyswietlic, wybierasz paczke danych z rekordami z kolejki xxx i je wyswietlasz, pobierasz nastepna paczke, wyswietlasz ja itd.
pokaz stuktury tych tabel co masz w bazie bo ja sie szczerze mowiac zgubilem w tym co Ty robisz
pioch
6.02.2007, 12:22:06
struktura tebeli mecz
id, przeciwnik, gospodarz, kiedy, kolejka, gol1, gol2
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.