여러 옵션을 '확인'할 수있는 확인란이 있습니다. 일단 체크되면 JavaScript 배열에 저장되고 ajax를 통해 PHP 파일로 전달됩니다. 거기에서 배열의 각 요소를 가져오고 각 요소의 SQL 문에 새로운 where 조건을 추가하고 쿼리를 실행하기 위해 foreach 루프를 수행하려고합니다. 실행PHP - foreach 루프 내에서 SQL 문에 새로운 WHERE 절 추가
스크립트
var vendors = [];
function filterResults($this)
{
var vendor = $($this).attr('data-id');
if($($this).prop('checked'))
{
var action = 'add';
vendors.push(vendor);
}
else
{
var action = 'remove';
var index = vendors.indexOf(vendor);
if(index >= 0)
{
vendors.splice(index, 1);
}
}
PHP 스크립트 (필터 results.php)
if(is_array($_POST['vendors']))
{
$collaterals = $vendor->updateResults($_POST['vendors']);
var_dump($collaterals);
foreach($collaterals as $col)
{
include '../parts/item.php';
}
}
PHP 함수 함유 foreach 루프
public function updateResults($vendors)
{
try
{
$items = array();
$sql = "SELECT * FROM collaterals WHERE ";
foreach ($vendors as $ven)
{
echo $ven;
$sql .= "vendor = ".$ven." OR ";
}
$stmt = $this->db->prepare($sql);
$stmt->execute();
while($row = $stmt->fetchObject())
{
$items[] = $row;
}
return $items;
}
catch(Exception $e)
{
$e->getMessage();
}
}
PHP 함수의 'echo'는 작동하지만 var_dump()가 'NULL'을 돌리고 있습니다. 즉, 어딘가에 SQL 문 내에 오류가 있음을 의미합니다.
도움을 주시면 감사하겠습니다. 감사!
대단히 감사합니다. 모든 답변이 매우 도움이됩니다! –