Nie wszystkie dane są pobierane z bazy MySQL

0

Cześć ! Mam problem z tym skryptem:

<?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

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

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 )

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.

0

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

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.

0

Wpisałem to w PHPMyAdmin:

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

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

1

Potestuj jeszcze:

<meta charset="utf-8">
  • Upewnienie się że pliki strony zapisane są jako UTF-8 (bez BOM)
0

Już działa, dzięki !

0

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

0

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1