Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Newsy z podziałem na dni tygodnia....
tomek0077
post 6.01.2004, 23:22:11
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Mam pewien problem, na innych forach nie dali rady mi pomóc więc zgłaszam się do was. Mam skrypt który wypisuje 15 najnowszych newsów:

[php:1:fea2b57fb0]<?php

if (eregi("block-newsy.php", $_SERVER['PHP_SELF'])) {
Header("Location: index.php");
die();
}

global $prefix, $db;


$content = "<table width="100%" border="0">";

$sql = "SELECT sid, title, comments, counter FROM ".$prefix."_stories $querylang ORDER BY sid DESC LIMIT 0,20";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$sid = $row['sid'];
$title = $row[title];
$comtotal = $row[comments];
$counter = $row[counter];
$content .= "<tr><td align="left"><strong><big>&middot;</big></strong>&nbsp;<a href="modules.php?name=News&amp;file=article&amp;sid=$sid">$title</a></td><td align="right"></td></tr>";
}
$content .= "</table>";

</center>";

?>[/php:1:fea2b57fb0]

Teraz potrzebuje zrobić tak żeby newsy były wyświetlane z podziałem na dni i żeby te dni się zmieniały w zależności od czasu teraźniejszego, coś w tym stylu:

Piątek
-------------
Tytyłu newsa8
Tytyłu newsa7
Tytyłu newsa6
--------------
Czwartek
---------------
Tytyłu newsa5
Tytyłu newsa4
---------------
Środa
---------------
Tytyłu newsa3
Tytyłu newsa2
Tytyłu newsa1


Max ilość newsów wyświetlanych ma być równa 20. Tytuł newsa ma być linkiem do tego newsa. Nie wiem czy ten skrypt co napisałem coś pomoże.....
Aha date w newsach mam w formacie "2003-10-25 20:09:26" - tak dokładnie jest w bazie mysql tylko w tym momencie godzina jest tu nie potrzebna.

Jest kto kto potrafi pomóc mi w zbudowaniu tego skryptu ?
Go to the top of the page
+Quote Post
kicaj
post 6.01.2004, 23:23:33
Post #2





Grupa: Zarejestrowani
Postów: 1 640
Pomógł: 28
Dołączył: 13.02.2003
Skąd: Międzyrzecz/Poznań

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


Poczytaj o [manual:87a15a460a]mktime()[/manual:87a15a460a]


--------------------
PHP Developer

"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola
Go to the top of the page
+Quote Post
tomek0077
post 6.01.2004, 23:29:10
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Przeczytałem, ale zbyt wiele mi to nie pomogło :? bo nie jestem jeszcze aż tak dobry.... proszę o pomoc bo nie mam pojecia jak to zrobić
Go to the top of the page
+Quote Post
mhs
post 7.01.2004, 00:38:21
Post #4





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


sposob jest bardzo prosty - nie trzeba wykorzystywac tutaj mktime()

wykorzystaj tutaj mozliwosci jakie oferuje MySQL (aczkolwiek nie napisales z jakiego systemu zarzadzani baza danych korzystasz); otoz: wykorzystaj tutaj funkcje WEEKDAY()

Twoje zapytanie wiec mniej wiecej wygladac bedzie nastepujaco:
[sql:1:a206f623cd]SELECT jakiesId, WEEKDAY(nazwaPola) AS dzien FROM nazwaTabeli ...[/sql:1:a206f623cd]

wynikiem zapytania bedzie wyswietlenie obok wartosci, ktore potrzebujesz kolumny z numerem dnia w tygodniu (poniedzialek = 0; niedziele = 6)

to jest rozwiazanie Twojego problemu - natomiast jezeli bedziesz mial problem z zastosowaniem tego to pisz - pomoze Ci sie
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 01:17:34
Post #5





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Używam phpmyadmin.

Hmmm... jednak mam problem z dalszym wykorzystaniem tego, proszę o dalsze wskazówki smile.gif


Ps. Wiedziałem że na tym forum są spece... smile.gif
Go to the top of the page
+Quote Post
scanner
post 7.01.2004, 07:37:04
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




To,że korzystasz z phopMyAdmin nie ma znaczenia. Jedynie daje nam informację, że używasz MySQL. Zatem na przyszłość, wyrażaj się precyzyjniej.
Czego nie rozumiesz w tym, co mhs napisał? Próbowałeś to wykorzystać, czy czekasz na gotowca? Jeśli to pierwsze, to pokaż jak.
I poczytaj Regulamin punkt IV.2.d i na przyszłość stosuj się do niego.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 13:32:04
Post #7





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


To że używam mysql napisałem w 1 poście "...2003-10-25 20:09:26" - tak dokładnie jest w bazie mysql tylko w tym momencie godzina jest tu nie potrzebna..."

Więc myślałem że chodzi tutaj o zarządzanie....

Nie czekam na gotowca ale więcej informacji gdyż nie potrafie stworzyć takiego czegoś:

Piątek
-------------
Tytyłu newsa8
Tytyłu newsa7
Tytyłu newsa6
--------------
Czwartek
---------------
Tytyłu newsa5
Tytyłu newsa4
---------------
Środa
---------------
Tytyłu newsa3
Tytyłu newsa2
Tytyłu newsa1
Go to the top of the page
+Quote Post
scanner
post 7.01.2004, 13:37:37
Post #8





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Zacnzij od:[php:1:c443befa84]<?php
$sql = "SELECT sid, title, comments, counter, WEEKDAY(pole_daty) AS dzien FROM ".$prefix."_stories $querylang ORDER BY sid DESC LIMIT 0,20";
?>[/php:1:c443befa84]I sprawdz co zobaczysz w [php:1:c443befa84]<?php
$row['dzien'];
?>[/php:1:c443befa84]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 14:05:24
Post #9





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Skrypt:

[php:1:0f984756f4]<?php
$sql = "SELECT sid, title, comments, counter, WEEKDAY(time) AS dzien FROM ".$prefix."_stories $querylang ORDER BY sid DESC LIMIT 0,20";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$sid = $row['sid'];
$dzien = $row['dzien'];
$title = $row[title];
$comtotal = $row[comments];
$counter = $row[counter];
$content .= "<tr><td align="left"><strong><big>&middot;</big></strong>&nbsp;<a href="modules.php?name=News&amp;file=article&amp;sid=$sid">$dzien</a></td><td align="right"></td></tr>";
}
?>[/php:1:0f984756f4]

Wyświetlił mi numer dnia w który się ten news ukazał wraz z linkiem do niego:
6
5
5
3
3
3
1
1
1
1
0
0
0
.......
Go to the top of the page
+Quote Post
mhs
post 7.01.2004, 14:28:18
Post #10





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


no widzisz smile.gif

teraz wystarczy miec na uwadze to co napisalem wczesniej:

Cytat
wynikiem zapytania bedzie wyswietlenie obok wartosci, ktore potrzebujesz kolumny z numerem dnia w tygodniu (poniedzialek = 0; niedziele = 6)


teraz w skrypcie napisz obsluge tego aby Ci wyswietlilo zamiast 0 to poniedzialek itd....

ps. chyba wczesniej sam to zrobisz niz ja Ci pomoge smile.gif
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 14:38:11
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Tylko wydaje mi się że to nie tak będzie...

Ja chcę aby wyświetlał on newsy z dzisiejszego dnia, oraz poprzedniego a jeśli wstawię żeby wyświetła on np. z piątku to będzie wyświetlał newsy z wszystkich piątków.... :? dlatego tu potrzebny jest miesiąc oraz rok....

Nie musi się wyświetlać dzien tygodnia może też być tak:

04.01.2004
-------------
Tytyłu newsa8
Tytyłu newsa7
Tytyłu newsa6
--------------
03.01.2004
---------------
Tytyłu newsa5
Tytyłu newsa4
---------------
Go to the top of the page
+Quote Post
scanner
post 7.01.2004, 14:43:33
Post #12





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Człowieku, to czego ty w końcu chcesz?
To na co próbnujemy Cię z mhs'em naproweadzić da:
04.01.2004 | Tytyłu newsa8
04.01.2004 | Tytyłu newsa7
04.01.2004 | Tytyłu newsa6
03.01.2004 | Tytyłu newsa5
03.01.2004 | Tytyłu newsa4
03.01.2004 | Tytyłu newsa3

Teraz w jednej pętli wystarczy wywalić powtarzającą się datę ponad konkretne newsy

Kod
1. Sprawdz datę.

2. Jesli inna niż ta z poprzedniego przebiegu pętli, pokaż datę

3. Pokaż tytuł

3. Idz do 1 dopóki nie skończy listować newsów


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 15:24:11
Post #13





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


No ale w tym momencie jeśli 1 dnia będzie 20 newsów to 2 dzień się już nie wyświetli....

Ja mam taki pomysł na to:

Kod
Data= dzień dzisiejszy



1. Wyświetl data

2. Pobierz z bazy wszystkie newsy = data

3. Wyświetl te newsy



4. Wyświetla data-1 (dzień poprzedni)

5. Pobierz z bazy wszystkie newsy = data-1

6. Wyświetl te newsy

Tylko gorzej z pomysłem na wykonanie...
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 17:30:39
Post #14





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Już mam pomysł na wykonanie smile.gif jedank mam problem z pobraniem z bazy daty newsa w formacie "2003-10-25 20:09:26" i porównanie jej z czasem obecnym.

Przeczytałem manual o date() i mktime() ale nie potrafie nadal tego zrobić.
Go to the top of the page
+Quote Post
Cudi
post 7.01.2004, 19:38:10
Post #15


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


Szukałeś nie w tym manualu co trzeba smile.gif
:arrow: http://webdeveloper.pl/manual_mysql/show.p..._and_time_types


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post
tomek0077
post 7.01.2004, 22:02:16
Post #16





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Przeczytałem ale dalej jestem w dołku :? Nie wiem jak pobrać z bazy danych date "2003-10-25 20:09:26" tak żeby ją podzieliść na $rok $miesiąc $dzień bo chcę pominąć godzine żeby porównać to potem z date("Ymd")
Go to the top of the page
+Quote Post
tomek0077
post 8.01.2004, 00:15:09
Post #17





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Napisałem już taki skrypt jednak on nie działa, na 100% jest błąd porównaniu daty news np. 2003-10-25 20:13:31 z obecną, da ktoś rade mi pomóc ?

[php:1:cd652c3387]<?php
$data= mktime (0,0,0,date("Y"),date("m"),date("d"));


$content = "<table width="100%" border="0">";

$sql = "SELECT title FROM ".$prefix."_stories WHERE time ='$data' ORDER BY time DESC";
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result)) {
$title = $row[title];

$content .= "<tr><td align="left"><strong><big>&middot;</big></strong>&nbsp;<a href="modules.php?name=News&amp;file=article&amp;sid=$sid">$title</a></td><td align="right"></td></tr>";
}


$content .= "</table>";

?>[/php:1:cd652c3387]
Go to the top of the page
+Quote Post
scanner
post 8.01.2004, 11:18:02
Post #18





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Cytat
Napisałem już taki skrypt jednak on nie działa, na 100% jest błąd porównaniu daty news np. 2003-10-25 20:13:31 z obecną, da ktoś rade mi pomóc ?[php:1:bf1c3b6e4c]<?php
$data= mktime (0,0,0,date("Y"),date("m"),date("d"));  
?>[/php:1:bf1c3b6e4c]
http://pl2.php.net/mktime [php:1:bf1c3b6e4c]<?php
$data= mktime (0,0,0,date("Y"),date("d"),date("m"));
?>[/php:1:bf1c3b6e4c]


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
tomek0077
post 8.01.2004, 14:18:41
Post #19





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 6.01.2004

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


Napisałem z pomocą mhs nowy skrypt jednak nie wiadomo czemu on nie działa(nie wyswietla żadnych wyników), widzi ktoś tu jakiś błąd ?

[php:1:3df0a4fd65]<?php
$today = date('Y-m-d');


$content = "<table width="100%" border="0">";

$sql = "SELECT title FROM ".$prefix."_stories WHERE LEFT(time, 10)= $today ORDER BY
time DESC LIMIT 0,20";
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) {
$title = $row[title];


$content .= $title;
}


$content .= "</table>";
?>[/php:1:3df0a4fd65]
Go to the top of the page
+Quote Post
Cudi
post 8.01.2004, 16:13:39
Post #20


Administrator planeta/IRC


Grupa: Przyjaciele php.pl
Postów: 385
Pomógł: 0
Dołączył: 19.04.2003
Skąd: Zabrze

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


1. Zgubiłeś
[php:1:9de80b4f9e]<?php
echo $content;
?>[/php:1:9de80b4f9e]
Drobne uwagi:
2. Wsadź nazwe klucza tablicy $row między apostrofy, żeby php odrazu wiedziało że ma sie z tym obchodzić jak ze stringiem, a nie jak ze stałą
3. Niepotrzebnie towrzysz zmienną tymczasową $title, możesz odrazu przypisać wartość $row['title'] do zmiennej $content
[php:1:9de80b4f9e]<?php
while ($row = $db->sql_fetchrow($result)) {
$content .= $row['title'];
}
?>[/php:1:9de80b4f9e]


--------------------
"Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning."
Cudi's devBlog
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Wersja Lo-Fi Aktualny czas: 21.06.2025 - 09:53