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

Problem ze zrobieniem przycisku sortowania

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
185 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ź 739 wizyt
pytanie zadane 14 czerwca 2021 w C i C++ przez warzywko13 Użytkownik (840 p.)
0 głosów
1 odpowiedź 373 wizyt
0 głosów
2 odpowiedzi 554 wizyt

93,436 zapytań

142,431 odpowiedzi

322,669 komentarzy

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

...