Skocz do zawartości

4 pierwsze wyniki z bazy


Sanchez Spinoza

Rekomendowane odpowiedzi

No własnie. Chciałbym wyświetlić 4 wynika z bazy ale których data jest najbliższa dzisiejszej dacie.

Chodzi oto że na pierwszej stronie zespołu muzycznego będą 4 najbliższe koncerty z listy.

SELECT * FROM tabela LIMIT 4 ORDER BY .... no właśnie. co? help :)

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Zapytanie:

SELECT * FROM Koncerty WHERE data>= 2006-08-27 ORDER BY data ASC LIMIT 4

Schowek02.jpg

I po co składujesz datę jako unixowy znacznik czasu oraz datę rozbijasz na składowe?

Możesz datę zapisać jako DATETIME -> 2006-09-06 00:00:00

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

ORDER BY `data` DESC

Tylko to chyba zbyt łatwe. A jeżeli koncert już sie odbył? Potrzebny bedzie jeszcze warunek WHERE

No właśnie, napisałem

SELECT * FROM akurat_koncerty ORDER BY `data` DESC LIMIT 4

I wszystko super wyszło tylko że pokazuje mi teraz 4 koncerty ostatnio wpisane a nie koncerty najbliższe któe będą. Najbliżesz daty dzisiejszej. Tu będzie trzeba dać chyba WHERE ... i coś tam CURDATE? dobrze myśle?

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

podalem Ci odpowiedz....

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

No już widze, poprostu napisałem później niżty i tak wskoczyło.

A ja nie robiłem tej tabeli tylko modyfikuje kod takiego gościa. Jednym słowem żanada.

Wszystko super, tylko wyskakują mi wszystkie wyniki ale od tyłu. tzn. wszystkie rekordy starsze niż podana data. Coś mi się wydaje że ta tabela jest zpartolona. Dziwnie sięzachowuje.

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Jaki format zmiennej przetrzymujesz w polu `data' ? Z tego co widze to integer

Domyślam sie że to jest wartość zwrócona przez time();

A więc porównanie musi być też odpowiednie.

$czas = time();
WHERE data<= $czas

I sortowanie od największej wartości - czyli DESC

.

Odnośnik do komentarza
Udostępnij na innych stronach

jeśli datę koncertu masz zapisana jako unixowy znacznik czasu to pobierasz aktualna date funkcja

$dzisiaj= time();

SELECT * FROM Koncerty WHERE data>= '$dzisiaj' ORDER BY data ASC LIMIT 4;  lub DESC

Nie ma w tym czarnej magj SA tylko zapytania SQL

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

DZIAŁA!:)!!! ;) dziękuję wam

$dzisiaj= time(); < to było to

:) dzięki i pozdrawiam!

* * *

Aha, bo data nie jest zapisana w bazie jako DATE tylko inaczej i jak wywołuje rekord data

to dostaje zapis np: 1157752800

Gość wcześniej zamieniał ten zapis funkcją:

function time2pl($timestamp, $uklad){

global $mies1;
global $dni1;

$dzien = date("j", $timestamp);
$minuty = date("i", $timestamp);
$miesiac = date("n", $timestamp); $miesiac = $mies1[$miesiac];
$Rok = date("Y", $timestamp);
$rok = date("y", $timestamp);
$Dzien = date("w", $timestamp); $Dzien = $dni1[$Dzien];
$godzina = date("H", $timestamp);

if($godzina=="00") $godzina="";

$zmiana = array("d"=>"$dzien", "m"=>"$miesiac", "R"=>"$Rok", "r"=>"$rok", "D"=>"$Dzien", "g"=>"$godzina", "i"=>"$minuty");

	for($i=0; $i<strlen($uklad); $i++){
		$litera = substr($uklad, $i, 1);
		$out .= (!isset($zmiana[$litera])) ? $litera : $zmiana[$litera];
	}

	return $out;
}

I potem w kodzie:

$data_koncertu = time2pl($data, "d m R (D)");

;)

I jak ja mam z tego odczytac np. 3 wrzesień?

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Troche wiecej samodzielnosci :) informacje o funkcjach czasu w PHP nie są tajemnicą ....

https://pl2.php.net/date

echo 'Data: '.date('d.m.Y: H:i:s',1157752800).'';

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

A takie małe szybciutkie pytanko jeszcze, bo domyślnie baza wypluwa

SELECT * FROM akurat_niusy LIMIT 10

10 PIERWSZYCH wpisanych wyników.

A jak zrobić by wyrzucała 10 OSTATNICH wyników?

Sorry że z takimi pierdołami sie tu plątam ale musze sobie kupić jakąś dobrą książkę z MySQLem a mam pilną robutkę. :)

Dzięki...

Profesjonalne publikacje Content Marketingowe - zamów online na BlackHood.pl 

Szeroki wybór Łożysk samochodowych

Polecam również Praca Bielsko

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności