Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] - wyszukiwanie wartości.
malzon
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.12.2012

Ostrzeżenie: (0%)
-----


Witam!

Piszę w tym dziale, bo jestem naprawdę początkujący. Zacznę od ilustracji:


Mam przykładową tabelę. Chciałbym zrobić stronę na której albo z użyciem pola "text" lub "select" (może być coś innego) mógłbym wybrać (na podstawie w/w tabeli) wagę paczki, a w drugim polu czy jest to przedpłata na konto czy opłata za pobraniem, po czym zostanie wyświetlona kwota do zapłaty. Proszę bardzo nie sugerować się przykładem, bo chciałbym w przyszłości dodać dość dużo wierszy np. 300 i tyle samo kolumn. Chciałbym również żeby cała zawartość znajdowała się z bazie danych MySQL. Czy jest możliwość zrobienia czegoś takiego? Bardzo prosiłbym o pomoc, ewentualny przykład.

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
tab
post
Post #2





Grupa: Zarejestrowani
Postów: 75
Pomógł: 20
Dołączył: 8.10.2012

Ostrzeżenie: (0%)
-----


Cytat(malzon @ 4.12.2012, 21:44:02 ) *
Czy jest możliwość zrobienia czegoś takiego?

Tak, da sie. Baza SQL to takie wszechstronne narzędzie że umożliwia nawet wyliczanie opłat za przesyłkę wink.gif
Nie wiem jak bardzo sie znasz na tym wiec powiem ci po prostu jak ja bym to zrobil. Najpierw model tabeli:
ID MIN MAX PRE POST
1 0 31 29 36 <- dla pierwszego rekordu z tabeli takie wartosci trzeba by wprowadzic, dla pozostalych analogicznie. Pre to przedpłata, post to opłata za pobraniem
Plik html to by było cos takiego:
  1. <form actiion method>
  2. <input type=text name=weight>
  3. <select name=type>
  4. <option name=pre>Opłata Przed</option>
  5. <option name=post>Opłata z dosyłka</option>
  6. </select>
  7. </form>

PHP:
  1. <?php
  2. if ((isset($_POST['weight'])) && (isset($_POST['type'])))
  3. {
  4. $waga = strip_tags($_POST['weight']);
  5. $type = $_POST['type']; // pre lub post
  6. mysql_connect( // parametry twojej bazy );
  7. $ret = mysql_query("SELECT '$type' FROM tabela WHERE $weight > min and $weight < max");
  8. $wynik = mysql_fetch_assoc($ret);
  9. echo $wynik[$type];
  10. }

To moze zawierac bledy. Od dawna nie korzystam z proceduralnych funkcji do obslugi bazy danych (wole PDO) wiec troche sie pozapominało. Ale to tylko idea wiec nie powinienes miec problemów z przerobieniem tego.

Ten post edytował tab 4.12.2012, 22:02:03
Go to the top of the page
+Quote Post
malzon
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 4.12.2012

Ostrzeżenie: (0%)
-----


A co jeśli kolumn byłoby 200? Musiałbym dodać 200 razy <option>? Czy lepiej wprowadzić coś na styl: podaj wartość wiersza, podaj wartość kolumny -> klik = wynik?

Ten post edytował malzon 4.12.2012, 22:08:58
Go to the top of the page
+Quote Post
tab
post
Post #4





Grupa: Zarejestrowani
Postów: 75
Pomógł: 20
Dołączył: 8.10.2012

Ostrzeżenie: (0%)
-----


Takie rozwiązanie byłoby niewygodne dla osób, które korzystałyby z twojej aplikacji. Znacznie lepszym wyborem są opcje. Przy 200 polach faktycznie musialbys to wszystko wprowadzic recznie ale w praktyce raczej nie wystepuja tabele majace 200 kolumn. Wtedy juz sie robi kilka tabel i korzysta z róznych relacji miedzy nimi.
EDIT: jednak nie musisz wpisywać recznie. Znalazłem taka opcje: http://php.net/manual/pl/function.mysql-fetch-field.php, ale nigdy jej nie używałem wiec sam musisz sobie o niej poczytac. Jednak w praktyce mozesz ja wykorzystac tak ze pobierzesz nazwy kolumn do tablicy i potem dla kazdego elementu tej tablicy bedziesz w petli tworzył kolejna opcje. Jednak miej na uwadze ze takie rozwiązanie jest znacznie mniej wydajnie niz parsowanie czystego html'a

Ten post edytował tab 4.12.2012, 22:32:06
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:24