Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] pomoc z odczytaniu z bazy
Forum PHP.pl > Forum > Przedszkole
swinia
witam,
tworze wyszukiwarke w PHP i mam problem z odczytaniem danych z bazy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>
  2. <head>
  3. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  4. <meta name="Description" content=" Jest to strona o Mario Puzo ">
  5. <meta name="Keywords" content=" Mario, Puzo ">
  6. <meta name="Author" content=" Piotr Świniarski ">
  7. <title> Sklep z artykułami sportowymi </title>
  8. <link rel="stylesheet" href="style.css" type="text/css">
  9. </head>
  10. <body>
  11. <a name="gora"></a>
  12. <table border width="700" align="center" cellspacing="0" cellpadding="0" summary="0"
  13. <tbody>
  14. <tr>
  15. <td height="100" bgcolor="silver" colspan="2"><img src="logo.gif" alt="" width="700" height="100"></td></tr>
  16. <tr>
  17. <td width="175" valign="top">
  18. <!-- MENU --><br>
  19. <a target="_blank" href="index.php">Główna</a><br><br>
  20. <a target="_blank" href="rejestracja.php">rejestracja</a><br><br>
  21. <form action="rezultaty.php" method="post">
  22. Wybierz metodę wyszukiwania<br />
  23. <select name="metoda szukania">
  24. <option value="producent">producent
  25. <option value="rozmiar">rozmiar
  26. <option value="rodzaj">rodzaj
  27. </select><br />
  28. Wprowadź wyrażenie<br />
  29. <input name="wyrazenie" type="text"><br />
  30. <input type="submit" value="Szukaj">
  31. </form>
  32.  
  33. </td>
  34. <td valign="top">
  35. <center>
  36. <h1>Sklep sportowy - wyniki wyszukiwania</h1>
  37. <?php
  38. $metoda_szukania=$_POST["metoda_szukania"];
  39. $wyrazenie=$_POST["wyrazenie"];
  40.  
  41. $wyrazenie=trim($wyrazenie);
  42.  
  43. if(!$metoda_szukania || !$wyrazenie)
  44. {
  45. echo "Brak parametrów wyszukiwania";
  46. }
  47. {
  48. $metoda_szukania = addslashes($metoda_szukania);
  49. $wyrazenie = addslashes($wyrazenie);
  50. }
  51. mysql_connect ("localhost","root","")or die("Nie można się połączyć. Komunikat: ".mysql_error()."; Numer błędu: ".mysql_errno());
  52.  
  53.  $sql = mysql_select_db("sklepsportowy") or die("Nie można pobrać".mysql_error()."; Numer błędu: ".mysql_errno());
  54. $zapytanie ="select producent, rodzaj, rozmiar from opis_towaru where" .$metoda_szukania =$wyrazenie;
  55. $wynik=mysql_query($zapytanie)or die("Błąd w zapytaniu");
  56.  
  57. $ile_znalezionych = $wynik;
  58.  
  59. echo "Ile Znalezionych:" .$ile_znalezionych. "<br /><br />";
  60.  
  61. for($i=0; $i<$wynik; $i++)
  62. {
  63. $wiersz=mysql_fetch_assoc($wynik);
  64. echo '<br />'.($i+1).'.<b>producent</b><br />';
  65. echo stripslashes($wiersz['producent']);
  66. echo '<br /><b>rozmiar</b><br />';
  67. echo stripslashes($wiersz['rozmiar']);
  68. echo '<br /><b>rodzaj</b><br />';
  69. echo stripslashes($wiersz['rodzaj']);
  70. }
  71.  
  72.  
  73. ?>
  74.  
  75.  
  76. </center>
  77. </td>
  78. </tr>
  79. <tr><td colspan="2">Piotr Świniarski (c)2008</td></tr>
  80. </table>
  81.  
  82. </body>
  83. </html>







błąd jest napewno w tej linijce
$zapytanie ="select producent, rodzaj, rozmiar from opis_towaru where" .$metoda_szukania =$wyrazenie;
wiem, ze nie powinno tam być znaku =, ale jak tego nie wstawiłem to wyskakiwał mi błąd w zapytaniu
a teraz wyrzuca mi całą zawartość z tabeli, bez rozróżniania tego co zostało wpisane w wyszukiwarce.

z gory dzieki za podpowiedz.
xbigos
  1. $zapytanie ="select producent, rodzaj, rozmiar from opis_towaru where ".$metoda_szukania."='$wyrazenie'";


spróbuj tak.
Swinia
No elegancko wszystko poszło.
Wielkie dzięki. Ale jeszcze mam problem ze zmienną $ile_znalezionych
zamiast podać prawdziwą wartość, wyskakuje mi coś takiego "Resource id #3"
graveozz
Zrób tak i powinno pomóc.
  1. <?php
  2. $ile_znalezionych=mysql_num_rows ($wynik);
  3. ?>
Swinia
wielki dzieki zadziałało.
i teraz jeszcze jedno, narazie ostatnie pytanie, mianowicie.
Bez względu ile produktów znajdzie, zawsze wyświetla przynajmiej 3 pola. jak znajdzie 2 to jedno zostaje puste.
troche zamąciłem, ale pokaże na zdjeciu

http://www.fotosik.pl/pokaz_obrazek/5e44cf30acc5feb9.html

podejrzewam, że chodzi tu o pętle for ale dokładnie nie wiem o co.
graveozz
Zamiast
  1. <?php
  2. for($i=0; $i<$wynik; $i++)
  3. ?>

daj
  1. <?php
  2. for($i=0; $i<$ile_znalezionych; $i++)
  3. ?>

i będzie ok.
Swinia
A jakbym chciał teraz zrobić przycisk "zakup" po każdym znalezionym produkcie, to zwykłym przyciskiem z html-a da radę??
graveozz
Submit podparty odpowiednim kodem PHP powinien załatwić sprawę.
Swinia
zrobiłem już przycisk ale coś nie mogę dla niego ustawić akcji??
może jakaś mała podpowiedź jakich funkcji mam użyć??
Swinia
Dobra już sobie poradziłem, dzieki za wszystko
Swinia
już teraz naprawdę ostatnie pytanie.
Mam na swojej stronce przycisk kup, po którym nacisnięciu
pojawia się strona do zlozenia zamowienia.
i tu pytanie, co muszę zmienić w tych 2 kodach, żeby po naciśnięciu przycisku kup
w formularzu pojawiły już się wartości takie, przy którym naciśnięto przycisk kup.
Np. Producent: Adidas
Rodzaj: Koszulka
Kup
Naciskamy kup i w formularzu pojawiają się takie dane.
Jeśli w ogóle jest to wykonalne??

  1. <?php
  2. $metoda_szukania=$_POST["metoda_szukania"];
  3. $wyrazenie=$_POST["wyrazenie"];
  4.  
  5. $wyrazenie=trim($wyrazenie);
  6.  
  7. if(!$metoda_szukania || !$wyrazenie)
  8. {
  9. echo "Brak parametrów wyszukiwania";
  10. }
  11. {
  12. $metoda_szukania = addslashes($metoda_szukania);
  13. $wyrazenie = addslashes($wyrazenie);
  14. }
  15. mysql_connect ("localhost","root","")or die("Nie można się połączyć. Komunikat: ".mysql_error()."; Numer błędu: ".mysql_errno());
  16.  
  17. $sql = mysql_select_db("sklepsportowy") or die("Nie można pobrać".mysql_error()."; Numer błędu: ".mysql_errno());
  18. $zapytanie ="select producent, rodzaj, rozmiar from opis_towaru where ".$metoda_szukania."='$wyrazenie'";
  19. $wynik=mysql_query($zapytanie)or die("Błąd w zapytaniu");
  20.  
  21. $ile_znalezionych = mysql_num_rows($wynik);
  22.  
  23. echo "Ile Znalezionych:" .$ile_znalezionych. "<br /><br />";
  24.  
  25. for($i=0; $i<$ile_znalezionych; $i++)
  26. {
  27. $wiersz=mysql_fetch_assoc($wynik);
  28. echo '<br />'.($i+1).'.<b>producent</b><br />';
  29. echo stripslashes($wiersz['producent']);
  30. echo '<br /><b>rozmiar</b><br />';
  31. echo stripslashes($wiersz['rozmiar']);
  32. echo '<br /><b>rodzaj</b><br />';
  33. echo stripslashes($wiersz['rodzaj']);
  34.  
  35. echo '<br />
  36. <form action="zloz_zamowienie.php" method="post">
  37. <input "type="submit" value="Kup" /></form>';
  38. }
  39.  
  40. ?>

  1. <?php
  2.  
  3.  
  4. echo ';<form action="dodaj_zamowienie.php" method=post>
  5. <table align="center" border="1" summary="Ankieta o pisarzu">
  6. <tr>
  7. <td>
  8. Producent
  9. </td>
  10. <td>
  11. <input type="text" name="$_producent" size="20">
  12. </td>
  13. </tr>
  14. <tr>
  15. <td>
  16. Rodzaj
  17. </td>
  18. <td>
  19. <input type="text" name="rodzaj" size="20">
  20. </td>
  21. </tr>
  22. <tr><td>
  23. <input type="submit" value="Wyslij">
  24. <input type="reset" value="Reset">
  25. </td>
  26. </tr>
  27. </table>
  28. </form>';
  29.  
  30. ?>
Swinia
Nie chodzi mi o gotowe rozwiązania, tylko jakieś podpowiedzi jak to zrobić.
Myśle jak przypisać wartości pobrane po nacisnieciu przycisku kup(i jak przycisk kup, ma je pobrać),do formularza
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.