Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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:
(IMG:http://www.4point.pl/gfx/image/tabelka%20cen%20copy.jpg)

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
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ę (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.09.2025 - 01:11