Nie wszystkie dane są pobierane z bazy MySQL

Nie wszystkie dane są pobierane z bazy MySQL
Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Cześć ! Mam problem z tym skryptem:

Kopiuj
<?php 
require "connect.php";

$product_name = addslashes($_POST["product_name"]);

$qry = "SELECT * FROM `produkty` WHERE `Nazwa` LIKE '%$product_name%';";
$result = mysqli_query($conn ,$qry);


$rows = array();
while($data = $result->fetch_array())
{
    $rows["lajt"][] = $data;
}
print json_encode($rows);

?>

Używam tego skryptu do pobierania danych z bazy MySQL do aplikacji na Android-a ( projekt sklepu internetowego )
Wszystko jest dobrze jeśli wpisuje w aplikacji **rower ** do wyszukania.

Wtedy wszystko się ładnie pobiera, ale gdy wpiszę kuchenka to już żadnego JSON-a nie ma.
To samo jest jak wpiszę piłka.

Wiedziałby ktoś dlaczego tak jest i jak to naprawić ?

P.S w załączniku jest tabela z bazy danych

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

A jakie kodowanie masz w tabeli?
Albo zmień kodowanie na takie które masz sufiks _ci (case insensitive) albo używaj funkcji STRTOLOWER (Czy jakoś tak, zamienia litery w stringu na małe) na polu po którym szukasz.

Aby sprawdzić czy to jest faktyczną przyczyną, sprawdz po prostu czy znajdzie Ci jeśli wpiszesz pierwsza wielka literę. Kuchenka/Piłka

Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Jeśli wpisuje duże litery to też jest problem.
A w bazie danych metoda porównywania napisów to utf8_unicode_ci ( i w bazie i w tabeli )

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

No to problem tkwi w kodzie php :)

a3.PNG

a2.PNG

a1.PNG


Może nie z tej bazy pobierasz dane? ;) a to zdarza się nawet najlepszym.

Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Pobieram z dobrej bazy. Jak inaczej by pobierało wszystkie informacje o tym rowerze? Inne tabele nie zawierają informacji o produktach.

axelbest
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 2255
0

A robiłeś echo przy zmiennej $qry? (niekoniecznie echo... możesz użyć np debuggera do sprawdzenia wartości tej zmiennej) Jaką wartość ma ta zmienna po wstawieniu tam parametru $product_name? Wiem, że to proste i można podstawić to w głowie, ale może właśnie tu tkwi błąd. Jak zobaczysz jak wygląda takie zapytanie w kodzie, odpal je potem np w phpmyadminie (po prostu bezpośrednio w bazie danych) i zobacz jakie masz wyniki.

Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Wpisałem to w PHPMyAdmin:

Kopiuj
SELECT * FROM `produkty` WHERE `Nazwa` LIKE '%Kuchenka%'

i wszystko się ładnie pokazuje.
A w przeglądarce nic.

Delor
  • Rejestracja: dni
  • Ostatnio: dni
1

Potestuj jeszcze:

Kopiuj
<meta charset="utf-8">
  • Upewnienie się że pliki strony zapisane są jako UTF-8 (bez BOM)
Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Już działa, dzięki !

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 701
0

A spróbuj może z PDO i bindowaniem paramterów: http://phpmajster.blogspot.com/2015/05/php-pdo-podstawy-3-bindowanie.html

Adrian098741
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 105
0

Zmieniłem bazę z tej od XAMPP-a na tą z oficjalne strony MySQL i jest wszytko ok.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.