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

Problem ze zrobieniem przycisku sortowania

42 Warsaw Coding Academy
0 głosów
181 wizyt
pytanie zadane 29 kwietnia 2020 w PHP przez Hub ert Nowicjusz (170 p.)
edycja 29 kwietnia 2020 przez Hub ert
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="GET">
    <select name="order">
       <option value=' data_wpisow ASC'> Data ROSN.</option>
       <option value=' data_wpisow DESC'> Data MALEJ.</option>
       <option value=' naglowek_wpisu ASC'> Wpisy ROSN.</option>
       <option value=' naglowek_wpisu DESC'> Wpisy MALEJ.</option>
    </select>
   <button type="submit">Sortuj</button>
</form>
$order = "SELECT * FROM wpisy ORDER BY";
if(isset($_REQUEST['order'])) {
    $order .= $_REQUEST['order'];
}
else {
    $order .= 'data_wpisow DESC';
}

$tw = mysqli_query($conn, $order);

        while ($row = mysqli_fetch_assoc($tw)) {
.....
}

Szukałem różnych przykładów, ale nie mogę znaleźć nic konkretnego.

Mam stronke w php ktora tworzy kolejne divy->okienka(wpisy), zrobiłem sortowanie wg daty_wpisu, nazwy_wpisu, treści wpisu, ale chce zrobić przełącznik (przycisk) zmieniający sortowanie. Próbuje to zrobić tak jak wyżej, ale nie działa. Zapytanie jest generowane poprawnie, strona działa, ale nie wyświetla nowego sortowania po naciśnięciu.

Problem jest w linii: while ($row = mysqli_fetch_assoc($tw)) która wyświetla notice:

mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in /var/www/html/...

Sporo już próbowałem. Proszę o radę, ew. inną technologię, ktora zrobi taki działający select/przycisk sortowania.

 

PROBLEM ROZWIĄZANY dałem coś takiego pod zapytanie $tw: 

if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } 

bledu nie wyswietlilo

zmieniłem metode na POST

i z ciekawości dałem w tym miejscu dwie spacje zamiast jednej:

$order = "SELECT * FROM wpisy  ORDER BY"

Nie do końca rozumiem co to zmieniło, ale zaczeło działać.

komentarz 29 kwietnia 2020 przez Hub ert Nowicjusz (170 p.)

PROBLEM ROZWIĄZANY

1 odpowiedź

0 głosów
odpowiedź 29 kwietnia 2020 przez eunstachy Stary wyjadacz (14,180 p.)
edycja 29 kwietnia 2020 przez eunstachy
To co robisz to prosta droga do SQL Injection. Zobacz, że pobierasz bezpośrednio parametr z url i wstawiasz go do zapytania slq. NIGDY nie można robić czegoś takiego. Dane pobrane w ten sposób zawsze muszą przejść przez walidację. Oczywiście, może to jest tylko jakiś mały projekt który nigdy nie będzie opublikowany w internecie, ale nie możesz zaczynać nauki od wyrabiania sobie złych nawyków.

Tak więc polecam zacząć wszystko od początku zmieniając zupełnie podejście.

Podobne pytania

0 głosów
1 odpowiedź 729 wizyt
pytanie zadane 14 czerwca 2021 w C i C++ przez warzywko13 Użytkownik (840 p.)
0 głosów
1 odpowiedź 371 wizyt
0 głosów
2 odpowiedzi 538 wizyt

93,382 zapytań

142,382 odpowiedzi

322,539 komentarzy

62,740 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

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...