Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Kalendarz eventowy
Itep
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Witam,

Co mogę zmienić w tym kalendarzu, by pokazywał on najbliższe wydarzenia od góry nie od dołu?

Adres z kodem: http://www.webdesigns1.com/php/tutorial.php
Adres z kalendarzem: http://www.pseo.info/kalendarz

Pozdrawiam
Go to the top of the page
+Quote Post
mefjiu
post
Post #2





Grupa: Zarejestrowani
Postów: 313
Pomógł: 5
Dołączył: 22.03.2005

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


Problem tutaj jest taki że pobierane są dane odrazu z pliku i wyświetlane,
wydaje mi się że nie ma możliwości posegregowania tegow odwrotnej kolejności.
A wsadzenie tego wszystkiego do tablicy i nieodwróceniu danych w tablicy mija się z celem.

Proponuje przepisać ten skrypt aby wykorzystywał mysql wtedy będziesz mógł operować danymi w każdy sposób.
Go to the top of the page
+Quote Post
Itep
post
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Nauczycielka powiedziała, że nie jest to prawda smile.gif Może jednak istnieje jakiś sposób zmiany wyświetlania się kolejnych wydarzeń?
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
A wsadzenie tego wszystkiego do tablicy i nieodwróceniu danych w tablicy mija się z celem.

Niestety, to chyba jedyne sensowne wyjście... Szukałem sposobu na sortowanie danych w DirectoryIterator i nie znalazłem innego rozwiązania prócz wrzucenia do tablicy i przesortowania...


--------------------

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
Itep
post
Post #5





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Jak mogę to zrobić? sadsmiley02.gif

Taki mam kod:

Kod
<?php
$date = date("Ymd");

$handle=opendir('events');
while (($file = readdir($handle))!==false) {
  
     if ($file >= $date) {
        include("events/$file");
        }
}
closedir($handle);
?>


Ten post edytował Itep 9.06.2008, 20:27:05
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wrzuć nazwy plików do tablicy i ją przesortuj.

Po szczegóły zapraszam do manuala.


--------------------

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
Itep
post
Post #7





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Mam teraz taki kod:

Kod
<html>
<head>
<title>Events</title>
</head>
<body>
<h1>Events</h1>

<table cellpadding="3">
<tr><th>Date</th><th>Event</th><th>Location</th></tr>    
<?php
$date = date("Ymd");
$tablica=array($file);
$a = sizeof($tablica);
$handle=opendir('events');
while (($file = readdir($handle

))!==false) {
     for ($b = $file; $a > $b; $b++)
{
sort($tablica);
echo "$tablica[$b]";
}
     if ($file >= $date) {
        include("events/$file");
     }
}


closedir($handle);
?>
</table>
</body>
</html>


Ale niestety nie działa...

E: Pojawia się błąd o zbyt długim czasie sortowania tablicy.

Ten post edytował Itep 9.06.2008, 21:00:48
Go to the top of the page
+Quote Post
Kicok
post
Post #8





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Najpierw odczytaj wszystkie pliki do tablicy, a dopiero potem ją posortuj.

sort" title="Zobacz w manualu PHP" target="_manual, natsort" title="Zobacz w manualu PHP" target="_manual, natcasesort" title="Zobacz w manualu PHP" target="_manual, readdir" title="Zobacz w manualu PHP" target="_manual


  1. <?php
  2.  
  3. $a = sizeof($tablica);
  4. $handle=opendir('events');
  5. while (($file = readdir($handle))!==false) 
  6. {
  7. for ($b = $file; $a > $b; $b++)
  8. {
  9. sort($tablica);
  10. echo "$tablica[$b]";
  11. }
  12. // (...)
  13.  
  14. ?>

Co to w ogóle ma być? Wiesz chociaż co masz pod zmienną $a i $b?


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Itep
post
Post #9





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Zrobiłem to na podstawie tego: http://www.siteql.net/web-pophp16.html
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Sortuj tylko raz, tamten "kurs" jest do d...

Masz tu najlepszy: http://pl.php.net/sort

Ten post edytował erix 10.06.2008, 15:50:18


--------------------

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
Itep
post
Post #11





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Wydaje mi się, że taki kod ma sens:

Kod
   $tablica = array($file);
    $a = count($tablica);
    sort($tablica);
    for ($b=0; $b <= $a; $b++)
    echo $tablica[$b];


Jak rozumiem najpierw zliczam ilość indeksów w tabeli za pomocą funkcji count(), później sortuję za pomocą pętli for. Czy mylę sie? Mój główny problem polega na tym, jak osadzić to w tym:

Kod
<html>
<head>
<title>Kalendarz</title>
</head>
<body>
<h1>Kalendarz</h1>
<table cellpadding="3">
<tr><th>Data</th><th>Wydarzenie</th></tr>
<?php
$date = date("Ymd");
$handle=opendir('wydarzenia');
while (($file = readdir($handle))!==false) {

    if ($date >=$file) {
       include("wydarzenia/$file");
    }
}
closedir($handle);
?>
</table>
</body>
</html>


Nie wiem, w którym dokładnie miejscu mam to wpisać, by całość zadziałała.
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak rozumiem najpierw zliczam ilość indeksów w tabeli za pomocą funkcji count(), później sortuję za pomocą pętli for.

Pierwsze się zgadza. Ale drugie nie - pętla służy tutaj do wyświetlenia elementów, sort" title="Zobacz w manualu PHP" target="_manual służy tutaj za funkcję sortującą. To jest tylko jedna linijka, odczep się tej pętli do sortowania. ;P

Cytat
Nie wiem, w którym dokładnie miejscu mam to wpisać, by całość zadziałała.

Najpierw zmodyfikuj pętlę while, aby wpisywała elementy do jakiejś tablicy, a nie od razu je include" title="Zobacz w manualu PHP" target="_manual'owała.

Sortowanie i pokazywanie (ten kawałek kodu) wrzuć po while.


--------------------

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
Itep
post
Post #13





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Czy takie coś ma sens?

Kod
<?php
$date = date("Ymd");
$handle = opendir('events');

while (($file = readdir($handle))!==false) {

    $tablica = array($file.php);
    $a = count($tablica);
    sort($tablica);
    if ($file >= $date) {
    echo ($tablica[$file.php]);      
    }
}


closedir($handle);
?>
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przeczytałeś uważnie mojego poprzedniego posta?


--------------------

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
Itep
post
Post #15





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Z poprzedniego posta zrozumiałem, że pętla for jest niepotrzebna i wystarczy samo sort. Czy tak jest? A drugą część starałem się zrealizować tak, jak umiałem, choć zapewne nie jest ona pozbawiona błędów smile.gif

E: Wybaczcie moją głupotę, ale w PHP dopiero raczkuję.

Ten post edytował Itep 10.06.2008, 20:55:27
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A co może oznaczać to moje zdanie?
Cytat
Sortowanie i pokazywanie (ten kawałek kodu) wrzuć po while.


Cytat
E: Wybaczcie moją głupotę, ale w PHP dopiero raczkuję.

Ale to Cię nie zwalnia z czytania ze zrozumieniem. Każdy kiedyś zaczynał, ale nikt nie będzie myślał za Ciebie, jeśli Ty tego nie będziesz robił.

Poza tym, poczytaj, jak się używa tablic.


--------------------

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
Itep
post
Post #17





Grupa: Zarejestrowani
Postów: 23
Pomógł: 1
Dołączył: 4.05.2008
Skąd: Mokotów

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


Mam taki kod:

Kod
<html>
<head>
<title>Events</title>
</head>
<body>
<h1>Events</h1>

<table cellpadding="3">
<tr><th>Date</th><th>Event</th><th>Location</th></tr>    
<?php
$date = date("Ymd");
$handle = opendir('events');

while (($file = readdir($handle))!==false) {
    $tablica = array($file);
    $a = count($tablica);
    $x = $file;
    if ($file >= $date) {
        
    }
        
    }
    for( $x = 0; $x <= $a; $x++ ){
    sort($tablica);
    echo("$tablica[$x]");
}
    


closedir($handle);
?>
</table>
</body>
</html>


Problemy są dwa. Pierwszy polega na tym, że skrypt zwraca jedynie pierwszy z plików. Drugi zaś dotyczy tego, że skrypt jedynie wypisuje plik/pliki, a nie działa sam kalendarz. Jestem coraz bliżej rozwiązania, ale wciąż są pewne mankamenty.

Proszę o pomoc, pozdrawiam.

E: Nieaktualne.

Ten post edytował Itep 11.06.2008, 17:14:11
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: 22.08.2025 - 00:29