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

Wyszukanie posta za pomocą czasu.

VPS Starter Arubacloud
0 głosów
250 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ź 295 wizyt
0 głosów
0 odpowiedzi 180 wizyt
+1 głos
0 odpowiedzi 158 wizyt

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...