저는 현재 작성한 PHP 서비스를 통해 데이터베이스와 통신 할 응용 프로그램을 개발 중입니다.PHP MySQL 문이 아무것도 반환하지 않습니까?
내가 문제가되는 서비스는 사용자의 검색 문자열을 기반으로 테이블에서 행 또는 행을 찾아야하는 서비스입니다.
아래의 PHP는 SQL 쿼리에서 사용하는 데이터가 될 "name"변수를 사용하여 GET 요청을 수신하도록 설계되었습니다. 그래서 나는를 보낼 때, 그러나 검색에서 반환 된 행은 항상 내가 그것을보고있는 테이블의 항목과 "칩"의 이름이 0
// checks for the post data
if (isset($_GET["name"])) {
$name = '%' . $_GET['name'] . '%';
// get a list of products from the database
$result = mysql_query("SELECT * FROM products WHERE name LIKE $name");
if (!empty($result)) {
// check for empty result
if (mysql_num_rows($result) > 0) {
$result = mysql_fetch_array($result);
$products = array();
$products["id"] = $row["id"];
$products["name"] = $row["name"];
$products["type"] = $row["type"];
$products["price"] = $row["price"];
$products["photo"] = $row["photo"];
// success
$response["success"] = 1;
// products node
$response["products"] = array();
array_push($response["products"], $products);
// echoing JSON response
echo json_encode($response);
} else {
// no products found
$response["success"] = 0;
$response["message"] = "No products found";
// echo no products JSON
echo json_encode($response);
}
} else {
// no products found
$response["success"] = 0;
$response["message"] = "Search Complete... No products found";
// echo no products JSON
echo json_encode($response);
}
} else {
// required field is missing
$response["success"] = 0;
$response["message"] = "Required field(s) is missing";
// echoing JSON response
echo json_encode($response);
}
내 코드와 아무 잘못 볼 수 없습니다 "cr"라고 말한 데이터를 요청합니다. 결과에 해당 항목이 표시 될 것으로 예상되지만 0 행을 반환합니다.
그럼 나도 직접 데이터베이스에 대해 아래의 SQL을 실행하면 실제로 올바른 레코드를 가져옵니다.
SELECT * FROM products WHERE name LIKE "%cr%"
어떤 아이디어 ?? 귀하의 요청에
참고합니다 ([빨간색 박스] 참조 (http://php.net/mysql_query)). 또한 $ _GET [ 'name']'에서'%'와'_'를 이스케이프해야합니다. –
Off-Topic Help :이 문제를 해결 한 후에 더 많은 문제가있을 것입니다. See :'$ result = mysql_query();'그런 다음 당신은'$ result = mysql_fetch_array()'를 가지고 있지만'$ row [ "price"]'를 사용합니다. '$ row'는 정의되지 않고'$ result'는 배열의 배열을 포함합니다. 최선의 소원 :-) – phpisuber01