Błędy parametrów

0

Chciałbym stworzyć zapytanie do bazy danych w których wyszuka wszystkie rekordy, gdzie znajduje się np. słowo rower. Kiedy jako zmienną ustawie '%rower%' to w bazie wyszuka mi bez problemu. Zmienna $name_product musi mieć w sobie $_POST. Kiedy tak zrobię to wszytko mi wyszuka, ale gdy chcę dać przed i po tym wyrazie % wyskakują mi takie błędy:

mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\szukajProduktu.php on line 9
 mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\szukajProduktu.php on line 19

Dobry kod:

<?php 
require "connect.php";

$name_product = "rower";

$mysql_qry = "select * from `produkty` where `nazwa` like '$name_product';";
$result = mysqli_query($conn ,$mysql_qry);

if(mysqli_num_rows($result) > 0) {
echo "Dzia�a";
}
else {
echo "Niedzia�a";
}

$name = 'name';
$price = 'price';
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
    $rows[] = $r;
}
print json_encode($rows);


?>

Zły kod po którym wyskakują te błędy

<?php 
require "connect.php";

$name_product = "rower";

$mysql_qry = "select * from `produkty` where `nazwa` like %'$name_product'%;";
$result = mysqli_query($conn ,$mysql_qry);

if(mysqli_num_rows($result) > 0) {
echo "Dzia�a";
}
else {
echo "Niedzia�a";
}

$name = 'name';
$price = 'price';
$rows = array();
while($r = mysqli_fetch_assoc($result)) {
    $rows[] = $r;
}
print json_encode($rows);


?>

Przepraszam że jest to nie za bardzo zrozumiałe, ale nie wiedziałem jak to napisać
Jestem początkujący jak chodzi o PHP

1

Znaki % powinieneś mieć wewnątrz apostrofów.
Btw, poczytaj o SQL injection.

0

Teraz działa !!! Dzięki

A w sprawie SQL injection, ja dopiero się uczę programowania i na razie chcę opanować te podstawowe rzeczy. Dopiero potem zajmę się bezpieczeństwem

0

Ja bym się też zainteresował PDO, bo mysqli_* to już coraz rzadziej używane funkcje .

1
folcmon napisał(a):

Ja bym się też zainteresował PDO, bo mysqli_* to już coraz rzadziej używane funkcje .

To że częściej w projektach używa się pdo, ze względu na jego obiektowość i wsparcie dla 12 typów baz danych, nie znaczy że zarówno za pomocą mysqli jak i pdo zrobisz wszystko to samo.
Do przeczytania:
https://websitebeaver.com/php-pdo-vs-mysqli

0
mefsh napisał(a):
folcmon napisał(a):

Ja bym się też zainteresował PDO, bo mysqli_* to już coraz rzadziej używane funkcje .

To że częściej w projektach używa się pdo, ze względu na jego obiektowość i wsparcie dla 12 typów baz danych, nie znaczy że zarówno za pomocą mysqli jak i pdo zrobisz wszystko to samo.
Do przeczytania:
https://websitebeaver.com/php-pdo-vs-mysqli

Dzięki ciekawy artykuł, jest tam sporo racji. Czy w tym konkretnym przypadku robi tu jakąś różnicę? Mamy kogoś kto dopiero zaczyna i sytuację gdzie większość aplikacji jednak PDO wykorzystuje pod spodem, spawa do rozważenia. Pozdro

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