• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyszukanie posta za pomocą czasu.

Object Storage Arubacloud
0 głosów
267 wizyt
pytanie zadane 15 czerwca 2017 w PHP przez Paweł123 Nałogowiec (33,500 p.)

Cześć, uczę się php. Zbudował bardzo prosty system dodawania postów na stronę. Teraz próbuje zrobić, wyszukiwanie posta za pomocą daty. Wszystko ładnie działa kiedy wpisuję np.: 2017-06-14 16:31:37. Kiedy próbuje wpisać tylko rok i miesiąc to nie mogę znaleźć posta, który przecież istnienie.

Czy ktoś wie dlaczego tak się dzieje? 

Czy ktoś wie co trzeba zrobić, aby działał rok i miesiąc.

<?php 
    // łączymy się z bazą danych 
    $connection = @mysql_connect('localhost', 'admin', 'admin') 
    or die('Brak połączenia z serwerem MySQL'); 
    $db = @mysql_select_db('admin', $connection) 
    or die('Nie mogę połączyć się z bazą danych'); 
     
?>
<!DOCTYPE HTML>
<html lang="pl">
<head>
	<meta charset="utf-8" />
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
	<title>Tytył strony</title>

</head>

<body>

<p><b>Archiwum:</b></p>
<form method="post">
Czas posta:<input type="text" name="archiwum_d">
<input type="submit" value="Sprawdz" />
</form>


<?php

    $archiwum_d = $_POST['archiwum_d']; 

    $wynik = mysql_query("SELECT * FROM test WHERE czas='$archiwum_d'"); 

    if(mysql_num_rows($wynik) > 0)
    {
        while($dane = mysql_fetch_assoc($wynik)) 
        {
     
        echo "<div>".$dane['imie']."</div><br>"; 
        echo "<div>".$dane['email']."</div><br>"; 
        echo "<div>".$dane['massage']."</div><br>"; 
        echo "<div>".$dane['czas']."</div>"; 
        
        } 
    }
    else
    {
        echo "brak danych w bazie danych";
    }

    mysql_close($connection); 


?>
<br><br><br><br>
<a href="index.php">Dodawanie</a>
<a href="wyjmowanie.php">Wyjmowanie</a>
</body>
</html>

 

1
komentarz 16 czerwca 2017 przez efiku Szeryf (75,160 p.)
Twój kod to prehistoria. Nie odpalisz go na php7.

Sprawdź czy biblioteka Carbon nie rozwiązuje Twojego problemu.

I przerzucić się na PDO powinieneś.

1 odpowiedź

+1 głos
odpowiedź 15 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
wybrane 16 czerwca 2017 przez Paweł123
 
Najlepsza
a jakiego typu masz pole w bazie danych MySQL?

Proponuję trzymać czas np. jako DATETIME, a od klienta pobierać trzy wartości, tj. rok, miesiąc, dzień (jako np. trzy inputy, albo data wybierana z jakiegoś kalendarzyka i przesyłana w 3 zmiennych) i weryfikowanie w zapytaniu MONTH, DAYOFMONTH, YEAR.
komentarz 16 czerwca 2017 przez Paweł123 Nałogowiec (33,500 p.)
Myślałem, aby zrobić walidacje przez JS.
komentarz 16 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
jak najbardziej, a nawet powiedziałbym że obowiązkowo, ale tylko po to, żeby elegancko wskazać użytkownikowi, że podał złe dane...

natomiast po stronie serwerowej walidacja to OBOWIĄZEK OBOWIĄZKOWY, zupełnie niezależny od walidacji u klienta.

A co, jeśli klient wyłączy obsługę JS? Wysyłamy wtedy do PHP ciąg bez żadnej weryfikacji co przy obsłudze baz danych może przysporzyć problemów.
komentarz 16 czerwca 2017 przez Paweł123 Nałogowiec (33,500 p.)
Robię coś takiego, że zabezpieczam stronę pod względem wyłączonego JS. Ukrywałam całą treść strony do czasu, kiedy użytkownik z powrotem włączy JS w przeglądarce.

Jednak chyba przerzucę się na walidację po stronie serwer.
komentarz 16 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)
nie ukrywaj strony dla usera bez JS, chyba, że faktycznie masz tak dużo JS, że bez tego stronka nie ruszy.

Jeśli jednak jest to prosta stronka i jakiś formularz to łatwo można dostosować stronę zarówno do userów z JS jak i bez niego. Pamiętaj, że stronka może być oglądana nie tylko na PC i smartfonie ale również na tabletach, telewizorach smart, konsolach, ebookach itp. i nigdy nie masz 100% pewności co do poziomu obsługi JS oraz co ważne, do możliwości jego włączania/wyłączania.
komentarz 16 czerwca 2017 przez Paweł123 Nałogowiec (33,500 p.)
Ok teraz rozumiem. Dzięki za informacje.

Podobne pytania

0 głosów
1 odpowiedź 313 wizyt
0 głosów
0 odpowiedzi 183 wizyt
+1 głos
0 odpowiedzi 161 wizyt

92,579 zapytań

141,429 odpowiedzi

319,657 komentarzy

61,962 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...