Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL] Zapytanie (porównanie dat)
Poker
post
Post #1





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Witam,

Główkuję, czytam manuala, szukam gotowych rozwiązań i nie mogę sobie poradzić.

Problem polega na tym, że chciałbym zliczać wszystkie nowe rekordy w bazie użytkownika, które były dodane po konkretnej dacie.

To z czym mam problem to w SELECT zamienić datę z bazy od razu na TIME i niestety w Manualu TIME AND DATe nie mogę tego znaleźć, więc kombinuję na różne sposoby.

I próbuję coś takiego :



Kod
$mytime=strtotime('2011-03-15 15:32:71');
mysql_query("SELECT date FROM message WHERE $mytime < DATE_ADD(date, INTERVAL 1 SECOND) AND myid='$id'");



Niestety wyciąga mi to wszystkie rekordy dla danego użytkownika a to nie o to chodzi.
Chcę wyciągnąć wszystko dodane po dacie $mytime.

Możecie mnie nakierować jakoś? Czy da się zrobić coś w stylu:

Kod
$mytime=strtotime('2011-03-15 15:32:71');
mysql_query("SELECT date FROM message WHERE $mytime < strtotime(date) AND myid='$id'");


Ten post edytował Poker 2.04.2011, 13:27:53
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


To usuń AND myid='$id'
Go to the top of the page
+Quote Post
Poker
post
Post #3





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


A jak wyciągnę wszystkie wiadomości należące do danego użytkownika?
Go to the top of the page
+Quote Post
potreb
post
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


"Niestety wyciąga mi to wszystkie rekordy dla danego użytkownika a to nie o to chodzi. "

To chcesz wyciągać dla jednego użytkownika czy dla wszystkich?

Zamiast strtotime w zapytaniu sql użyj UNIX_TIMESTAMP()
  1. mysql_query("SELECT date FROM message WHERE $mytime < UNIX_TIMESTAMP(date) AND myid='".$id."'");

A tu masz cały szereg informacji o zastosowaniu czasu - http://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html

Ten post edytował potreb 2.04.2011, 13:59:35
Go to the top of the page
+Quote Post
Poker
post
Post #5





Grupa: Zarejestrowani
Postów: 205
Pomógł: 3
Dołączył: 20.04.2009
Skąd: Jaworzno

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


Wyciąga mi wszystkie rekordy dla danego użytkownia, nie biorąc pod uwagę w ogóle czasu tutaj.


To zapytanie ma na calu wyświetlanie ilości nowych wiadomości, które zostały dodane PO ostatniej wizycie w skrzynce odbiorczej.

Takie coś jak na facebooku, nk. Gdzie wyświetla się ilość powiadomień.

Robię takie powiadomienia jak tutaj w lewym górnym rogu.
(IMG:http://www.techpaparazzi.com/wp-content/uploads/2010/11/fb-email-640.jpg)


A w tabeli użytkownika zapisuję kiedy ostatnio odczytał powiadomienia o nowych komentarzach zdjęć, nowych wiadomościach, itp.

I chciałbym wyciągnąć to co zostało dodane po ostatnim przeglądaniu nowych komentarzy.

Cytat(potreb @ 2.04.2011, 14:55:37 ) *
"Niestety wyciąga mi to wszystkie rekordy dla danego użytkownika a to nie o to chodzi. "

To chcesz wyciągać dla jednego użytkownika czy dla wszystkich?

Zamiast strtotime w zapytaniu sql użyj UNIX_TIMESTAMP()
  1. mysql_query("SELECT date FROM message WHERE $mytime < UNIX_TIMESTAMP(date) AND myid='".$id."'");

A tu masz cały szereg informacji o zastosowaniu czasu - http://dev.mysql.com/doc/refman/5.5/en/dat...-functions.html




Dałem nawet w pierwszym poście link tego samego. Przeglądnąłem to chyba z 10 razy i aż głupio się przyznać że tego nie zauważyłe, ale właśnie o to mi chodziło.

Więc wielkie dzięki za pomoc, przez swoją nieuwagę straciłem 2 godzinki pracy.
Jeszcze raz dzięki : )
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 03:45