![]() |
![]() ![]() |
![]() |
-Glacier- |
![]()
Post
#1
|
Goście ![]() |
Witam,
Nie będę się rozpisywał jaki to ciemny w tematyce php i sql jestem, bo to bez sensu, po prostu jestem i tyle - zaczynam dopiero to robić. Do sedna na czym polega problem: Stworzyłem trzy tabele: drops, drop_list, mobs W pierwszej tabeli dwa pola: mob_id, mob_name W drugiej tabeli dwa pola: mob_idd, drop_idd W trzeciej tabeli dwa pola: drop_id, drop_name Wprowadzam do pierwszej tabeli rekordy: [1]kot, [2]pies, [3]krowa Wprowadzam do trzeciej tabeli rekordy: [1]mleko, [2]kosc Za pomocą formularza w drugiej tabeli umieszczam id dropa i id moba: mob_idd drop_idd [1] [1] [2] [2] [3] [1] Kod wyszukiwarki:
Dziala to tak że po wpisaniu np kość skrypt znajduje przypisany jej ID, przechodzi do tabeli drop_list tam szuka tego ID dając wynik mob_idd, następnie za pomocą mob_idd znajduje mi w tabeli mob_id ID tego moba i wyswietla jego nazwę. Problem w tym, że jeśli wpiszę mleko, to wyszukiwarka oddaje wynik, ale tylko ostatni, i nie wyswietla mi wyniku końcowego typu kot krowa, tylko samo krowa. Może jakieś sugestie co robię źle? Jakieś podpowiedzi? PS. dział przedszkole jest świetnym pomysłem ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
jesli operujesz tylko na jednym wynikiem z bazy to while jest nie potrzebne i jesli uzywasz takich index'ow ['nazwa'] to zamiast mysql_fetch_array() uzywaj mysql_fetch_assoc() ale to zalezy od gustu nie ma roznicy
-------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
jesli operujesz tylko na jednym wynikiem z bazy to while jest nie potrzebne i jesli uzywasz takich index'ow ['nazwa'] to zamiast mysql_fetch_array() uzywaj mysql_fetch_assoc() ale to zalezy od gustu nie ma roznicy Chodzi o to, że nie jest to jeden wynik. W praktyce wygląda to następująco. Wpisuje do wyszukiwarki "mleko", po pierwszym przeszukaniu otrzymuje wynik "1", skrypt idzie sobie dalej i przy kolejnym poszukiwaniu w tabeli drop_list znajduje mi już dwa wyniki "1" i "3", w trzeciej części skryptu powinienem otrzymać wynik odpowiadający polu mob_id czyli [1]kot i [3]krowa, a niestety otrzymuje tylko [3]krowa ![]() Skrypt tak jakby omijał wynik wcześniejszy (czyli [1]kot) i generuje tylko ostatni ([3]krowa) I tu tkwi problem ![]() Ten post edytował glacier 13.12.2007, 20:28:19 |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
a moze program sie zapetla i dlatego tak jest czytalem ze przy jednym wyniku lepiej nie uzywac while bo sa dziwne wyniki a ty operujesz na jednej rzeczy
Widzisz pracujesz tylko na $wynikdropu3 = $wiersz3['mob_name']; Ten post edytował marcio 13.12.2007, 20:30:13 -------------------- Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/ Moj blog |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 1 Dołączył: 13.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Problem rozwiązany. Jak widzę, nauka php czy mysql to dużo kombinowania i pracy na zasadzie prób i błędów
![]() ZMieniony i działający kod wygląda tak: Kod <?php require_once("polaczenie_sql.php"); if($stan=='szukaj') { $zapytanie = "SELECT * FROM `drops` where `drop_name`='$znajdz'"; $wykonaj = mysql_query ($zapytanie); while($wiersz=mysql_fetch_array ($wykonaj)) { $wynikdropu = $wiersz['drop_id']; } [ZMIANA] $pytam2 = "SELECT * FROM `drop_list`, `mobs` WHERE `drop_idd`='$wynikdropu' AND `mob_id`=`mob_idd` ORDER BY mob_lvl"; [/ZMMIANA] $wykonaj2 = mysql_query ($pytam2); while($wiersz2=mysql_fetch_array ($wykonaj2)) { echo " </TR>"; } } else { echo "<center><br><form method=\"get\" action=\"index.php\"><input type=\"text\" name=\"znajdz\" size=\"20\"><br><input type=\"submit\" value=\"szukaj\" name=\"stan\"></form></center>"; } ?> temat można zamknąć ![]() ![]() Ten post edytował glacier 14.12.2007, 18:04:51 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 20:18 |