Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[PHP][MYSQL]Wyświetlenie wyników zapytania na stronie

17 Nov 2011 15:06 1819 5
  • Level 13  
    Witam,

    Mam jeden plik "statystki.php"

    i teraz w nim klika bardzo podobnych skryptów:

    <php?

    pola select option->wybór->zapytanie do bazy->wyświetlenie na ekranie

    ?>

    Wiadomo jak wyświetlę 1 zapytanie z 1 skryptu następnie 2 zapytanie z 2 skryptu to automatycznie wynik z 1 skryptu się zeruje.
    Czy Twoje urządzenia IoT są bezpieczne? [Webinar 22.06.2021, g.9.00]. Zarejestruj się za darmo
  • Level 42  
    Adalberd wrote:

    Wiadomo jak wyświetlę 1 zapytanie z 1 skryptu następnie 2 zapytanie z 2 skryptu to automatycznie wynik z 1 skryptu się zeruje.
    Niestety nic mi takiego nie wiadomo. Do momentu, jak nie zostanie zwolnione zapytanie, to jest ono cały czas utrzymywane w pamięci. Można równolegle wykonywać kilka zapytań.
  • Level 13  
    edytowałem post
  • Level 40  
    Czy pisząc, że "wynik pierwszego skryptu się zeruje" chodzi Ci o to, że znikają wybrane wcześniej wartości w comboboxach, czy do podsumowanie na fioletowo?
  • Level 13  
    Znikają wybrane wartości w comboboxach i automatycznie znika też text na fioletowo bo (...) nie da żadnego wyniku.
  • Helpful post
    Level 40  
    Dobre wieści to takie, że są na to przynajmniej dwa rozwiązania, złe: że obydwa wymagają pewnego nakładu pracy.

    Można to zrobić w czystym PHPie wykorzystując fakt, że przy każdym przeładowaniu strony po wykonaniu akcji submit metodą POST, wartości wybrane wcześniej na listach znajdą się w tablicy $_POST[], np. dla listy o nazwie "wybierzdate" będzie to wartość w tablicy $_POST['wybierzdate']. Wstaw sobie gdzieś na początku lub końcu strony polecenie php:
    Code: php
    Log in, to see the code
    to zobaczysz, co zawiera i jak się zmienia cała ta tablica.
    Myk polega na tym, żeby tworząc w pętli while listę <select> dla każdego elementu <option> sprawdzić, czy wartość którą chcemy mu przypisać nie jest równa wartości zapamiętanej wcześniej w tablicy $_POST (zwykłe if..then..else..). Jeżeli jest, należy stworzyć element <option> z atrybutem selected='selected', a zostanie on wybrany.

    Skomplikowany opis, więc na przykładzie pokazane o co chodzi:
    Code: php
    Log in, to see the code

    W podobny sposób trzeba ustawiać wszystkie wartości elementów, które muszą zostać zapamiętane przy przeładowaniu strony.
    Jednak obsługa tego w PHPie nie jest na dłuższą metę dobrym rozwiązaniem - po każdym kliknięciu przycisku cała strona musi się przeładować, każde zapytanie do bazy (nawet w danej chwili niepotrzebne) musi się wykonać etc.

    Druga metoda, wymyślona specjalnie do takich zastosowań,wiąże się z użyciem JavaScript. Możesz poszukać na czym polega wykorzystanie AJAX i XMLHttpRequest do dynamicznej zmiany strony, jednak ja polecam krok dalej i wykorzystanie do tego celu biblioteki jQuery i jej funkcji $.post(). Tak naprawdę robi to samo co wspomniany XMLHttpRequest, jednak ukrywa całą niepotrzebną implementację pod prostą funkcją:
    Code: jquery
    Log in, to see the code

    Ta funkcja wysyła zapytanie metodą POST do strony test.php, odbiera wynik do zmiennej "data" i wykorzystuje go dalej na stronie, bez konieczności przeładowywania całej strony. Wtedy używasz tylko tego, co jest naprawdę potrzebne do wykonania skryptu.
    Wadą jest, że jeżeli nie używałeś wcześniej jQuery (lub jeżeli się nie czuje pewnie w HTMLu , PHPie i JavaScripcie), trzeba się nauczyć pewnego specyficznego sposobu pracy z tą biblioteką, szumnie zwaną frameworkiem. Niemniej warto tak czy inaczej się z nią zapoznać, bo rozszerza możliwości strony i niezmiernie ułatwia jej pisanie.

    Także, jak widzisz, ścieżki są dwie, wybierz sobie która Ci bardziej odpowiada (polecam drugą :)) i do dzieła :)