wyciąganie newsów z danego miesiąca... |
wyciąganie newsów z danego miesiąca... |
13.11.2003, 18:50:17
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) |
Chciałbym się dowiedzieć jak rozwiązać taka sytuację. Mam newsy przechowywane w bazie i głównym wyznacznikiem jest data w formacie znacznika czasu czyli ogolnie system newsow. Powiedzmy, że tych newsów jest sporo i chciałbym wyciągać je w róznych miejscach strony np. z danego miesiąca jakiegos konkretnego roku.
Wiem, że można wszystkie wyciągać po kolei i sprawdzać czy miesiąc i rok jest tym miesiącem i rokiem co chcę wyświetlić ale jak wiadomo rozwiazanei troche bes sensu bo musi wtedy przeszukiwac cała baze i trzeba czekać na wyniki. Mam jeszcze 2 pomysł ale tez nie idealny i trzeba się z nim bawić a mianowicie np. wyciaganie danych z 1 miesiaca w przód i w tył danego roku i pozniej przy wyświetlaniu wykluczanie zbędnmych wpisów. Z tym, że i tutaj wyciagnie troche wiecej danych niz trzeba, nie mówiąc o babraniu ze znacnzikiem. Mam pytanie czy nie da się tego jeszcze jakos prościej rozwiązac, moze besposrednio przez 1 instrukcje do bazy, na pewno ktos już przerabiał podobne rzeczy?? |
|
|
13.11.2003, 22:41:05
Post
#2
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
marekk.. nie dobijaj.. pokaz strukture tabeli z newsami. Robisz to wszystko jednym zapytaniem. Tylko trzeba pomyslec troche..
-------------------- |
|
|
14.11.2003, 08:35:58
Post
#3
|
|
Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 2.05.2003 Skąd: Gdańsk Ostrzeżenie: (0%) |
Dokładnie poczytaj troche o select, przecież po to stworzyli SQLa, żeby takich problemów nie było )
|
|
|
14.11.2003, 11:25:39
Post
#4
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) |
No tak ale jak wyciagnąc to 1 zapytaniem z konkretnego misieaca i roku??
Tabele mam normalna jak ponizej: id int(11) temat text tekst text zdjecie text data int(30) zrodlo varchar(120) Ok. moge zmaienić sobie miesiąc i rok na znacnzik czasu ale jak pozniej wyodrębnic w zapytaniu dokladny przedzial danego miesiąca? Przeciez nie mozna instrukcji date czy mktime władowac besposrendio w zapytanie sqla? |
|
|
14.11.2003, 11:28:30
Post
#5
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
ale mozeszw php okreslona datę zamienić na znacznik czasu i tenże wpakowac do SQL'a...
-------------------- |
|
|
14.11.2003, 11:44:54
Post
#6
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) |
No i ja tak robię - w administracji ładuje np.:
$data = mktime($godz,$min,$sek,$mies,$dzien,$rok); mysql_query("INSERT INTO aktualnosci (id,temat,tekst,zdjecie,data,zrodlo,dzial) VALUES (null,'$temat','$tekst','$zdjecie','$data','$zrodlo','$dzial')",$link); I teraz na stronie mam powiedzmy podział na lata i miesiące no i powiedzmy, że chce wyciągnac newsy z marca 2000 roku: no to robie wywołanie: $data = mktime(0,0,0,03,1,2000); mysql_query("SELECT * FROM aktualnosci WHERE data='$data')",$link); No tylko wtedy mam z pierwszego dnia. Hehh tylko nie mow, że to proste wyciągniecie o którym myślisz polega na zdefiniowaniu wyciągania z każdego miesiąca osobno czyli np. // dla marca $data1 = mktime(0,0,0,03,1,2000); $data2 = mktime(0,0,0,03,31,2000); i pozniej w zapytaniu wyciagneicie daty z tego przedziału?? Bo jeśli tak to ok. rozumiem tyle, że trzeba przejechac wszytskie miesiące... |
|
|
14.11.2003, 12:37:36
Post
#7
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
[php:1:3e8429845d]<?php
$data1 = mktime(0, 0, 0, $mies, 1, $rok); $data2 = mktime(23, 59, 59, $mies, date('t', $data1), $rok); ?>[/php:1:3e8429845d] [sql:1:3e8429845d]SELECT * FROM aktualnosci WHERE data BETWEEN $data1 AND $data2[/sql:1:3e8429845d] -------------------- |
|
|
14.11.2003, 13:07:32
Post
#8
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) |
Hmm no cóż działa bez zarzutu - wielkie dzięki.
Ale prawdę mówiąc to ciężko było wpaść na takie rozwiązanie, o ile jeszcze z tym parametrem "t" przy funkcji "date" powinienem wiedzieć o tyle liczby "...23, 59, 59..." przy mktime cięzko było wyczaić, nawet w manualu nie ma o tym wzmianki. Rozumiem, że one sa istotne i jakos okreslają skąd dokladnie liczyc czy cos w tym stylu skoro "t" odpowiada za liczbe dni w danym miesiącu? |
|
|
14.11.2003, 13:28:45
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 660 Pomógł: 0 Dołączył: 28.08.2002 Skąd: Starachowice Ostrzeżenie: (0%) |
Funkcja mktime() jest dosyć dokładnie opisana w manualu. Liczby 23 59 59 to po prostu godzina 23:59:59 - aby również newsy z ostatniego dnia miesiąca zawierały się w przedziale.
|
|
|
14.11.2003, 13:37:07
Post
#10
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 0 Dołączył: 27.05.2003 Ostrzeżenie: (0%) |
upss... no tak dzieki raz jeszcze za pomoc.
|
|
|
14.11.2003, 15:54:13
Post
#11
|
|
Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław |
Cytat Hmm no cóż działa bez zarzutu - wielkie dzięki. Pisane z palcaCytat Ale prawdę mówiąc to ciężko było wpaść na takie rozwiązanie Elementarne drogi Watsonie.Sam napisałeś:Cytat [php:1:2717f46643]<?php
pierwsze trzy zmienne.. A do tego spojrzenie na zegarek..
$data = mktime($godz,$min,$sek,$mies,$dzien,$rok); ?>[/php:1:2717f46643] -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 00:20 |