Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyszukiwarka - problem z polskimi znakami w czasie szukania
Forum PHP.pl > Forum > PHP
airgucio
Witajcie

Mam problem z polskimi znakami a mianowicie, po wpisaniu w pole wyszukiwarki np:węgiel nie pokazuje mi wyników tylko komunikat : Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in search.php on line 47, ale jeśli wpiszę wegiel to wyniki wyskakują , i nie wiem co zrobić by działały polskie znaki. Tabela w bazie SQL jest na UTF8-polish_ci.

A tutaj kod
  1. <p><b>Wyszukiwarka:</b>
  2. <form action="../@partner/search.php" method="post" target="foo" onSubmit="window.open('', 'foo', 'width=500,height=500,status=yes,resizable=yes,scrollbars=yes') ">
  3. Wpisz szukany tekst: <input type="text" name="phrase" />
  4. <input type="submit" value="Szukaj" />
  5. </form>


a tutaj php:
  1. <style>
  2. body {
  3. font-family: "Tahoma";
  4. font-size: 14px;
  5. margin:15px;
  6. background: #f4f4f4;
  7. background-position: top center;
  8. }
  9.  
  10. </style>
  11.  
  12. <?php
  13. // program wyszukiwarki - search.php
  14. // wyświetlenie nagłówka
  15. echo'<h2>Wyniki wyszukiwania</h2>';
  16. // usunięcie niepotrzebnych białych znaków
  17. $_POST['phrase']=trim($_POST['phrase']);
  18. // sprawdzenie, czy użytkownik wpisał dane
  19. if(empty($_POST['phrase']))
  20. // jeśli nie, to wyświetl komunikat i zakończ działanie skryptu
  21. die('Formularz wypełniony niepoprawnie! Nie można wyświetlić wyników wyszukiwania!');
  22. // jeśli jednak dane są wpisane poprawnie
  23. else
  24. {
  25. // połączenie z bazą danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
  26. $base=mysqli_connect('localhost','xxxxx','xxxxx','xxxxxl');
  27. mysqli_query($base, "SET NAMES utf8");
  28. mysqli_query($base, "SET CHARACTER SET utf8");
  29. mysqli_query($base, "SET collation_connection = utf8_polish_ci");
  30.  
  31.  
  32.  
  33. // skonstruowanie zapytania
  34. // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ciąg w bazie danych
  35. // jak zapewne zauważyłeś, przed frazą i po niej umieszczam znaki procenta %
  36. // ten znak symbolizuje dowolny inny ciąg znaków, więc jest niezbędny do skutecznego wyszukiwania
  37. // połaczenie operatorem Or pozwala na wyszukiwanie danego ciągu zarówno w nazwie, jak i opisie produktu
  38. // UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
  39. $query="Select * FROM firma WHERE telefon Like '%{$_POST['phrase']}%' Or firma Like '%{$_POST['phrase']}%' Or miejscowosc Like '%{$_POST['phrase']}%'
  40. Or asortyment Like '%{$_POST['phrase']}%' ";
  41.  
  42.  
  43.  
  44. // wysłanie zapytania do bazy danych
  45. $result=mysqli_query($base,$query);
  46.  
  47. // ustalenie ilości wyszukanych obiektów
  48. $obAmount=mysqli_num_rows($result);
  49. // wyswietlenie ilości wyszukanych obiektów
  50. echo'Znaleziono: '.$obAmount.'<br /><br />';
  51. // wyświetlenie wyników w pętli
  52. for($x=0;$x<$obAmount;$x++)
  53. {
  54. // przekształcenie danych na tablicę
  55. $row=mysqli_fetch_assoc($result);
  56.  
  57. // wyświetlenie numeru identyfikacyjnego
  58. echo $x+1;
  59. echo '. ';
  60. // wyświetlenie nazwy produktu
  61.  
  62.  
  63.  
  64.  
  65.  
  66. echo('<p><br />Nazwa firmy: '.$row['firma'].' <br> Telefon: '.$row['telefon'].' <br> Ulica: '.$row['ulica'].'<br> Miasto: '.$row['miejscowosc'].'<br> Asortyment: '.$row['asortyment'].' <br> Umowa do : '.$row['umowa_do'].'</br>');
  67. echo("<br/>");
  68. echo("<hr>");
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77. echo'<br />';
  78. }
  79. }
  80. // zamknięcie połączenia
  81. mysqli_close($base);
  82. // koniec aplikacji
  83. ?>


Wcześniej jak szukałem jakiś fraz i wpisałem wyszukiwarce np : wegiel to jak otwierała mi sie nowa strona i miałem kilka rzcezy np: asortyment, ulica itp to były krzaczki jeśli pobierał wyniki z bazy ale jak dodałem:
  1. mysqli_query($base, "SET NAMES utf8");
  2. mysqli_query($base, "SET CHARACTER SET utf8");
  3. mysqli_query($base, "SET collation_connection = utf8_polish_ci");

to w wynikach pokazuje polskie znaki , jedynie w wyszukiwarce jak wpisuej polskie to nie działa i wyskakuje komunikat który napisałem wcześniej (Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in search.php on line 47,).Wiem że to chodzi o kodowanie ale już mi się pomysły wyczerpały sad.gif POMOCY

com
to nie ma żadnego związku z polskimi znakami
  1. $obAmount=mysqli_num_rows($result);
się nie możne wykonać musisz sprawdzić czy nie masz błędów wrzuć po $result=mysqli_query($base,$query);
  1. if (!$result) {
  2. die(mysqli_error($link));
  3. }


i sprawdź czy nie ma błędu wink.gif
airgucio
Oki rozumiem czyli mam:

  1. $result=mysqli_query($base,$query);
  2. if (!$result) {
  3. die(mysqli_error($link));
  4. }


tylko ja nie mam u siebie $linkt u mnei to jest base ? czyli tak

  1.  
  2. $result=mysqli_query($base,$query);
  3. if (!$result) {
  4. die(mysqli_error($base));
  5. }


Teraz działa i pokazuje mi 0 wyników, ale w bazie w asortymencie jest węgiel z polskimi znakami i go nie pokazuje , co z tym fantem zrobić ?
com
a znajduje wgl jakaś frazę ? bo być może masz źle sformułowane zapytanie smile.gif
airgucio
Tak mam dwie firmy jedna w asortymencie ma wegiel bez polskich znaków a druga węgiel z polskimi znakami , jak dam wyszukaj wegiel to znajduje a jak z polskimi nie . Dodatkowo widzę że w bazie danych jest węgiel z polskimi znakami.

a może dac cos takiego : $query = "SELECT * FROM firma WHERE MATCH (telefon, firma, miejscowosc, asortyment) AGAINST
('$phrase')";
Turson
Wpisz ten "węgiel" i zobacz co $_POST pokaże. Może problem leży w kodowaniu skryptu
airgucio
Własnie tutaj jak np jestem w dodaj firmę i dodam słowo węgiel poczym wchodzę w firmę żeby wyświetlic info o niej pisze węgiel , pozatym jak dam wyszukaj po nazwie firmy i póżniej pokazuje mi o niej informację też pisze węgiel. Nie wiem tylko czemu wyszukiwarka nie odczytuje polskich znaków bo przecież łączy się z bazą tam jest utf-8 a tabela asortymenyt ma utf-8-polish
Pyton_000
A skrypty z PHP są zakodowane w UTF-8 ?
airgucio
Tak zakodowane z tym nie ma problemu , wydaje mi się że to jest jakiś problem w skrypcie smile.gif tylko tego jeszcze nie rozpracowałem smile.gif


Baza UTF-8 ,później tuf8-polish-ci, wpisuje i są w bazie polskie litery problem tylko z odczytaniem może coś z odczytywaniem tablic ? wyników ? dodatkowa linijka kodu odpowiedzialna za odczytywanie i pokazywanie ich w wynikach ?

Zauważyłem że jak usune fragment

  1.  
  2. mysqli_query($base, "SET NAMES utf8");
  3. mysqli_query($base, "SET CHARACTER SET utf8");
  4. mysqli_query($base, "SET collation_connection = utf8_polish_ci");



to jak w wyszukiwarce wpisze hasło z polskimi znakami to mi je wyświetli tylko mają znak zapytania - bazie jak podgladam to jest oki są polskie znaki

Zauważyłem że jak dam :


  1. echo iconv('ISO-8859-2', 'UTF-8', "Nazwa firmy: '.$row["firma"].'");



To w wyszukiwarka działa z polskimi znakami , tylko teraz jak dodać aby wszystkie wyniki były z polskimi znakami taki kod ma sens ?

  1.  
  2.  
  3. echo iconv('ISO-8859-2', 'UTF-8', "Nazwa firmy: '.$row["firma"].' <br> Telefon: '.$row["telefon"].' <br> Ulica: '.$row["ulica].'
  4. <br> Miasto: '.$row["miejscowosc"].'<br> Asortyment: '.$row["asortyment"].'<br> Umowa do: '.$row["umowa_do"].'');


Już wszystko działa smile.gif


oto kod gdyby ktoś chciał:


  1.  
  2. <?php
  3. // program wyszukiwarki - search.php
  4. // wy?wietlenie nagłówka
  5. echo'<h2>Wyniki wyszukiwania</h2>';
  6. // usunięcie niepotrzebnych białych znaków
  7. $_POST['phrase']=trim($_POST['phrase']);
  8. // sprawdzenie, czy użytkownik wpisał dane
  9. if(empty($_POST['phrase']))
  10. // je?li nie, to wy?wietl komunikat i zakończ działanie skryptu
  11. die('Formularz wypełniony niepoprawnie! Nie można wy?wietlić wyników wyszukiwania!');
  12. // je?li jednak dane s? wpisane poprawnie
  13. else
  14. {
  15. // poł?czenie z baz? danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
  16. $base=mysqli_connect('localhost','xxxxl','xxxx','xxxxxx');
  17. //mysqli_query($base, "SET NAMES utf8");
  18. //mysqli_query($base, "SET CHARACTER SET utf8");
  19. //mysqli_query($base, "SET collation_connection = utf8_polish_ci");
  20.  
  21.  
  22.  
  23. // skonstruowanie zapytania
  24. // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ci?g w bazie danych
  25. // jak zapewne zauważyłe?, przed fraz? i po niej umieszczam znaki procenta %
  26. // ten znak symbolizuje dowolny inny ci?g znaków, więc jest niezbędny do skutecznego wyszukiwania
  27. // połaczenie operatorem Or pozwala na wyszukiwanie danego ci?gu zarówno w nazwie, jak i opisie produktu
  28. // UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
  29. $query="Select * FROM firma WHERE telefon Like '%{$_POST['phrase']}%' Or firma Like '%{$_POST['phrase']}%' Or miejscowosc Like '%{$_POST['phrase']}%'
  30. Or asortyment Like '%{$_POST['phrase']}%' ";
  31.  
  32.  
  33.  
  34. // wysłanie zapytania do bazy danych
  35. $result=mysqli_query($base,$query);
  36. if (!$result) {
  37. die(mysqli_error($base));
  38. }
  39.  
  40. // ustalenie ilo?ci wyszukanych obiektów
  41. $obAmount=mysqli_num_rows($result);
  42.  
  43.  
  44. // wyswietlenie ilo?ci wyszukanych obiektów
  45. echo'Znaleziono: '.$obAmount.'<br /><br />';
  46. // wy?wietlenie wyników w pętli
  47. for($x=0;$x<$obAmount;$x++)
  48. {
  49. // przekształcenie danych na tablicę
  50. $row=mysqli_fetch_assoc($result);
  51.  
  52. // wy?wietlenie numeru identyfikacyjnego
  53. echo $x+1;
  54. echo '. ';
  55. // wy?wietlenie nazwy produktu
  56.  
  57.  
  58.  
  59.  
  60. echo iconv('ISO-8859-2', 'UTF-8', 'Nazwa firmy: '.$row['firma'].' <br> Telefon: '.$row['telefon'].' <br> Ulica: '.$row['ulica'].'
  61. <br> Miasto: '.$row['miejscowosc'].'<br> Asortyment: '.$row['asortyment'].'<br> Umowa do: '.$row['umowa_do'].'');
  62.  
  63.  
  64. echo("<br/>");
  65. echo("<hr>");
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74. echo'<br />';
  75. }
  76. }
  77. // zamknięcie poł?czenia
  78. mysqli_close($base);
  79. // koniec aplikacji
  80. ?>



ktoś by coś jeszzce poprawił w nim ?
em1X
exclamation.gif http://pl.wikipedia.org/wiki/SQL_injection exclamation.gif
airgucio
A gdybym chciał ten skrypt przerobić na szukanie dat od do


To jak mam teraz coś takiego

  1. <?php
  2. // program wyszukiwarki - search.php
  3. // wy?wietlenie nagłówka
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5. // usunięcie niepotrzebnych białych znaków
  6. $_POST['date_od']=trim($_POST['date_od']);
  7. $_POST['date_do']=trim($_POST['date_do']);
  8. // sprawdzenie, czy użytkownik wpisał dane
  9. if(empty($_POST['date_od']))
  10. if(empty($_POST['date_do']))
  11. // je?li nie, to wy?wietl komunikat i zakończ działanie skryptu
  12. die('Formularz wypelniony niepoprawnie! ');
  13. // je?li jednak dane s? wpisane poprawnie
  14. else
  15. {
  16. // poł?czenie z baz? danych, NIE ZAPOMINJ USTAWIĆ WŁASNYCH DANYCH!
  17. $base=mysqli_connect('localhost','xxx','xxxx','xxxl');
  18. //mysqli_query($base, "SET NAMES utf8");
  19. //mysqli_query($base, "SET CHARACTER SET utf8");
  20. //mysqli_query($base, "SET collation_connection = utf8_polish_ci");
  21.  
  22.  
  23.  
  24. // skonstruowanie zapytania
  25. // zwróć uwagę na operator Like - to on jest sercem całej aplikacji. Pozwala wyszukać dany ci?g w bazie danych
  26. // jak zapewne zauważyłe?, przed fraz? i po niej umieszczam znaki procenta %
  27. // ten znak symbolizuje dowolny inny ci?g znaków, więc jest niezbędny do skutecznego wyszukiwania
  28. // połaczenie operatorem Or pozwala na wyszukiwanie danego ci?gu zarówno w nazwie, jak i opisie produktu
  29. // UWAGA! Tutaj też nie zapomnij ustawić swoich danych!
  30. //$query="SELECT * FROM firma WHERE (UMOWA_DO BETWEEN '$umowa_do' AND '$umowa_do')";
  31. //$query='SELECT * FROM firma WHERE umowa_do order ASC'
  32. $query="SELECT * FROM firma WHERE umowa_do BETWEEN '$date_od' AND '$date_do' ";
  33.  
  34.  
  35.  
  36. // wysłanie zapytania do bazy danych
  37. $result=mysqli_query($base,$query);
  38. if (!$result) {
  39. die(mysqli_error($base));
  40. }
  41.  
  42. // ustalenie ilo?ci wyszukanych obiektów
  43. $obAmount=mysqli_num_rows($result);
  44.  
  45.  
  46. // wyswietlenie ilo?ci wyszukanych obiektów
  47. echo'Znaleziono: '.$obAmount.'<br /><br />';
  48. // wy?wietlenie wyników w pętli
  49. for($x=0;$x<$obAmount;$x++)
  50. {
  51. // przekształcenie danych na tablicę
  52. $row=mysqli_fetch_assoc($result);
  53.  
  54. // wy?wietlenie numeru identyfikacyjnego
  55. echo $x+1;
  56. echo '. ';
  57. // wy?wietlenie nazwy produktu
  58.  
  59.  
  60.  
  61.  
  62. echo iconv('ISO-8859-2', 'UTF-8', 'Nazwa firmy: '.$row['firma'].' <br> Telefon: '.$row['telefon'].' <br> Ulica: '.$row['ulica'].'
  63. <br> Miasto: '.$row['miejscowosc'].'<br> Asortyment: '.$row['asortyment'].'<br> Umowa do: '.$row['umowa_do'].'');
  64.  
  65.  
  66. echo("<br/>");
  67. echo("<hr>");
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. echo'<br />';
  77. }
  78. }
  79. // zamknięcie poł?czenia
  80. mysqli_close($base);
  81. // koniec aplikacji
  82. ?>


to wyskakuje mi błąd
Warning: mysqli_close() expects parameter 1 to be mysqli, null given in xxxxxxxxxxxxxxxxxxxxx/search1.php on line 80

Co z tym fantem zrobić a może dat wyszukiwac inacze ? format dat w bazie rok miesiac dzien Format DATE
em1X
Znasz chociaż trochę angielski? Podstawy są niezbędne do pracy z PHP.

Parser mówi Ci dosłownie:
"błąd w linii 80: parametr przekazany do funkcji powinien być typu mysqli, a nie ma nic (parametr jest pusty)".

Wynika z tego, że zmienna $base nie zawiera to co powinna. Skoro deklarujesz ją tu:
  1. $base=mysqli_connect('localhost','xxx','xxxx','xxxl');


oznaczałoby to, że zmienna się poprawnie nie utworzyła, ergo nie uzyskałeś połączenia z bazą. Dlaczego nie uzyskano połączenia trzeba się zastanowić. Konkluzja może być tylko jedna: błędne dane do połączenia z bazą. Musisz ustalić które. Czy baza działa na localhoście (czy się uruchomiła), czy dane dostępowe są poprawne, czy nazwa bazy poprawna, itd. Myśl.
airgucio
Hej rozumiem że to tyczy dostępów, tylko ten skrypt opracowałem smile.gif za duże słowo przerobiłem dla funkcji like i wszystko fajnie działa połączenie z bazą danych również ,teraz jak zmieniłem query żeby pokazywał inne dane to jest daty z przedziałów - to nie działa.

Dane do bazy nie zostały zmienione, ale i też kilkakrotnie sprawdziłem czy jest wszystko oki, dodatkowo sprawdzałem czy są umowa_od i umowa_do w bazie

wcześniejsze query to

  1.  
  2. echo'<h2>Wyniki wyszukiwania</h2>';
  3. // usunięcie niepotrzebnych białych znaków
  4. $_POST['phrase']=trim($_POST['phrase']);
  5. // sprawdzenie, czy użytkownik wpisał dane
  6. if(empty($_POST['phrase']))
  7. // je?li nie, to wy?wietl komunikat i zakończ działanie skryptu
  8. die('Formularz wypełniony niepoprawnie! Nie można wy?wietlić wyników wyszukiwania!');
  9. // je?li jednak dane s? wpisane poprawnie
  10. else
  11. {
  12.  
  13. $base=mysqli_connect('localhost','xxxx','xxxx','xxxxx');
  14.  
  15.  
  16.  
  17. $query="Select * FROM firma WHERE telefon Like '%{$_POST['phrase']}%' Or firma Like '%{$_POST['phrase']}%' Or miejscowosc Like '%{$_POST['phrase']}%'
  18. Or asortyment Like '%{$_POST['phrase']}%' ";


a teraz podmieniłem na

  1.  
  2. $umowa_od=$_POST['umowa_od'];
  3. $umowa_do=$_POST['umowa_do'];
  4.  
  5. // sprawdzenie, czy użytkownik wpisał dane
  6. if(empty($_POST['umowa_od']))
  7. if(empty($_POST['umowa_do']))
  8. // je?li nie, to wy?wietl komunikat i zakończ działanie skryptu
  9. die('Formularz wypelniony niepoprawnie! ');
  10. // je?li jednak dane s? wpisane poprawnie
  11. else
  12. {
  13.  
  14. $base=mysqli_connect('localhost','xxxl','xxxx','xxxx');
  15.  
  16. $query="SELECT * FROM firma WHERE umowa_od >=$umowa_od AND umowa_do <=$umowa_do ";
  17.  


myślałem że to zadziała

mój kod wyszukiwarki to :

  1. <form action="../@admin/search1.php" method="post" target="foo2" onSubmit="window.open('', 'foo2', 'width=500,height=500,status=yes,resizable=yes,scrollbars=yes') ">
  2. Data od <input type="text" name="umowa_od" value=""/> data do <input type="text" name="umowa_do" value="" />
  3. <input type="submit" value="Szukaj" />
  4. </form>


em1X
A jak wygląda struktura tabeli firma? Wklej definicję pól.
airgucio
Wybacz że tylko opiszę ale nie jestem przy kompie i pisze z tableta:) w tebeli cała struktura ma np varchar(100) utf8_polish_ci jesli chodzi o umowa_od i umowa_do to one mają DATE czyli przetwarza mi w postaci rok miesiąc dzień. ( mam je wyświetlone na innej stronie więc nie pomyliem nazw nawet testowałem tam na podstawie between i tam pokazuje daty od do - tam tylko mi wyświetla a tu chciałem zrobić wyszukaj daty z przedziału)

wydaje mi się że źlę tworzę zapytanie czyli te select , ewentualnie mogłem coś pominąć przy połączeniu formularza z php no ale jak mam name="umowa_od" i później w pliku php

  1. $_POST['umowa_od']=trim($_POST['umowa_od']);



i to

  1. $query="SELECT * FROM firma WHERE umowa_od >=$_POST['umowa_od'] AND umowa_do <=$_POST['umowa_od'] ";


to powinno działać, ale dopiero oswajam się z php i sql więc nie wiem czy dobrze kombinuje smile.gif


a może użyć funkcji between

  1. $query="SELECT * FROM firma WHERE umowa_do BETWEEN '$umow_od ' AND '$umow_do '";


tylko jak to podłączyć pod formularz ?
em1X
Nie opatrzyłeś daty w cudzysłów, nie filtrujesz danych (chcesz stracić kiedyś pracę?). Poprawnie będzie:

  1. $filtr_umowa_od=htmlentities($_POST['umowa_od'], ENT_QUOTES);
  2. $query=sprintf('SELECT * FROM firma WHERE umowa_od >= "%1$s" AND umowa_do <= "%1$s"', $filtr_umowa_od);
airgucio
Witaj dziękuje za pomoc smile.gif zgdonie ze wskazówką teraz mam taki kod

  1.  
  2. <?php
  3.  
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5.  
  6. $umowa_od=$_POST['umowa_od'];
  7. $umowa_do=$_POST['umowa_do'];
  8.  
  9.  
  10. if(empty($_POST['umowa_od']))
  11. if(empty($_POST['umowa_do']))
  12.  
  13. die('Formularz wypelniony niepoprawnie! ');
  14.  
  15. else
  16. {
  17.  
  18. $base=mysqli_connect('localhost','xxxxl','xxxx','xxxxl');
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25. $filtr_umowa_od=htmlentities($_POST['umowa_od'], ENT_QUOTES);
  26. $query=sprintf('SELECT * FROM firma WHERE umowa_od >= "%1$s" AND umowa_do <= "%1$s"', $filtr_umowa_od);
  27.  
  28.  
  29.  
  30. // wysłanie zapytania do bazy danych
  31. $result=mysqli_query($base,$query);
  32. if (!$result) {
  33. die(mysqli_error($base));
  34. }
  35.  
  36.  
  37. $obAmount=mysqli_num_rows($result);
  38.  
  39.  
  40.  
  41. echo'Znaleziono: '.$obAmount.'<br /><br />';
  42. // wy?wietlenie wyników w pętli
  43. for($x=0;$x<$obAmount;$x++)
  44. {
  45.  
  46. $row=mysqli_fetch_assoc($result);
  47.  
  48.  
  49. echo $x+1;
  50. echo '. ';
  51.  
  52.  
  53.  
  54.  
  55.  
  56. echo iconv('ISO-8859-2', 'UTF-8', 'Nazwa firmy: '.$row['firma'].' <br> Telefon: '.$row['telefon'].' <br> Ulica: '.$row['ulica'].'
  57. <br> Miasto: '.$row['miejscowosc'].'<br> Asortyment: '.$row['asortyment'].'<br> Umowa do: '.$row['umowa_do'].'');
  58.  
  59.  
  60. echo("<br/>");
  61. echo("<hr>");
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. echo'<br />';
  71. }
  72. }
  73. // zamknięcie poł?czenia
  74. mysqli_close($base);
  75. // koniec aplikacji
  76. ?>


a formularz

  1. <p><b>Wyszukaj pod datach:</b> <p>
  2. <form action="../@admin/search1.php" method="post" target="foo2" onSubmit="window.open('', 'foo2', 'width=500,height=500,status=yes,resizable=yes,scrollbars=yes') ">
  3. Data od <input type="text" name="umowa_od" value=""/> data do <input type="text" name="umowa_do" value="" />
  4. <input type="submit" value="Szukaj" />
  5. </form>
  6.  

ale dalej nie działa czy filtr mam też ustawić dla umowa_do questionmark.gif?
Wybacz pewnie tak proste pytania ale wiele nauki przede mną sad.gif

Turson
No raczej facepalmxd.gif

Ucz się na metodzie prób i błędów. Dodawaj coś nowego, edytuj i sprawdzaj. W końcu trafisz.
em1X
Cytat(airgucio @ 28.09.2013, 00:10:06 ) *
ale dalej nie działa


Nie jesteśmy jasnowidzami. Co właściwie nie działa?
airgucio
Witaj

mój kod formularz wygląda teraz tak :

  1.  
  2. <p><b>Wyszukaj pod datach:</b> <p>
  3. <form action="../@admin/search1.php" method="post" target="foo2" onSubmit="window.open('', 'foo2', 'width=500,height=500,status=yes,resizable=yes,scrollbars=yes') ">
  4. Data od <input type="text" name="umow_od" /> data do <input type="text" name="umow_do" />
  5. <input type="submit" value="Szukaj" />
  6.  


a php tak :


  1.  
  2. <?php
  3.  
  4. echo'<h2>Wyniki wyszukiwania</h2>';
  5.  
  6. if(empty($_POST['umow_od']))
  7. if(empty($_POST['umow_do']))
  8.  
  9. die('Formularz wypelniony niepoprawnie! ');
  10.  
  11. else
  12. {
  13.  
  14. $base=mysqli_connect('localhost','xxx','xxxx','xxxl');
  15.  
  16. $filtr_umow_od=htmlentities($_POST['umow_od'], ENT_QUOTES);
  17. $filtr_umow_do=htmlentities($_POST['umow_do'], ENT_QUOTES);
  18.  
  19. $query=sprintf('SELECT * FROM firma WHERE umowa_od >= "%1$s" AND umowa_do <= "%1$s"', $filtr_umow_od, $filtr_umow_od);
  20.  
  21.  
  22.  
  23. // wysłanie zapytania do bazy danych
  24. $result=mysqli_query($base,$query);
  25. if (!$result) {
  26. die(mysqli_error($base));
  27. }
  28.  
  29. // ustalenie ilo?ci wyszukanych obiektów
  30. $obAmount=mysqli_num_rows($result);
  31.  
  32.  
  33. // wyswietlenie ilo?ci wyszukanych obiektów
  34. echo'Znaleziono: '.$obAmount.'<br /><br />';
  35. // wy?wietlenie wyników w pętli
  36. for($x=0;$x<$obAmount;$x++)
  37. {
  38. // przekształcenie danych na tablicę
  39. $row=mysqli_fetch_assoc($result);
  40.  
  41. // wy?wietlenie numeru identyfikacyjnego
  42. echo $x+1;
  43. echo '. ';
  44. // wy?wietlenie nazwy produktu
  45.  
  46.  
  47.  
  48.  
  49. echo ('Nazwa firmy: '.$row['firma'].' <br> Telefon: '.$row['telefon'].' <br> Ulica: '.$row['ulica'].'
  50. <br> Miasto: '.$row['miejscowosc'].'<br> Asortyment: '.$row['asortyment'].'<br> Umowa do: '.$row['umowa_do'].'');
  51.  
  52.  
  53. echo("<br/>");
  54. echo("<hr>");
  55. echo'<br />';
  56.  
  57.  
  58. }
  59.  
  60. mysqli_close($base);
  61. }
  62. ?>
  63.  


Kiedy wpisuje data od : 2013-10-10 i data do: 2013-10-20 i chce żeby wyszukał dane to wyświetla mi się puste okienko . skrypt chyba wogóle nie działa

Mam tabele firma gdzie jest rekord umowa_od i umowa_do w której zapisuje daty i później chce żeby poprzez formularz w którym mam pole o nazwie=umow_od i o nazwie=umow_do można było wyszukać zakres dat które wpisuje, czyli w bazie znajdują się umowy z datami a ja poprzez formularz okreslam które maja sie pokazać z jakiego okresu

Teraz nie wyskakuje mi żaden komunikat błędu , tylko puste okienko , dziękuję za zainteresowanie moim tematem drogi Kolego em1X smile.gif i pomoc której juz mi udzieliłeś

Probelm rozwiązany zbudowałem od nowa wyszukiwarkę i teraz wszystko działa smile.gif
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.