2015-01-08 2 views
1

PHP와 MySQL을 사용하여 하나 이상의 데이터베이스에서 열을 검색하려고합니다. 현재 나는이 일을하고있다. 데이터베이스에서 여러 행을 검색하는 PHP

내 형태 :

<form action="products.php" method="POST"> 
    Search: <input type="text" name="search" /> 
    <input type="submit" value="submit"/> 
    </form> 

여기에 내 현재 작업 쿼리입니다 :

$query = "SELECT * FROM `GraphicsCards` WHERE `Brand` LIKE '%". $search . "%'"; 
$run = mysqli_query ($connection, $query); 

당신은 사용자의 검색 입력 한 경우 내 쿼리보고 내 데이터베이스를 검색하고 볼 수있는 것처럼 아무것도 일치 "브랜드"란에

"모델" "가격"등과 같은 다른 열이 있으며 "브랜드"뿐만 아니라 이들을 검색 할 수 있기를 원합니다. 이것이 하나의 쿼리 일 수 있습니까?

또한 'AND'와 'OR'그리고 '|| '하지만 그들은 작동하지 않습니다.

+0

왜 OR이 작동하지 않습니까? – user4035

+0

내가 추가 할 때 또는 쿼리가 더 이상 데이터를 표시하지 않습니다./ –

+0

사용자 입력에서 오는 경우'$ search'가 올바르게 이스케이프 처리되는지 확인하십시오. 그렇지 않으면 SQL 삽입 취약점이 발생합니다. 이러한 이유로 매개 변수가있는 쿼리로 전환하는 것이 가장 좋습니다. – halfer

답변

4

OR 제대로 작동하면됩니다.

$query = "SELECT * FROM `GraphicsCards` 
    WHERE `Brand` LIKE '%". $search . "%' 
     OR `Model` LIKE '%" . $search . "%' 
     OR `Price` LIKE '%" . $search . "%'"; 

그냥 참고로, Brand, ModelPrice는 열이 아닌 행입니다.

+0

패트릭 멋진 사람 !! 그것은 작동합니다! 감사합니다. 신의 축복이 있구나. –

+0

@AbdushSamadMiah 환영합니다. 그것이 당신의 문제를 해결 한 이래로 대답을 받아 들일 수 있다면, 그것은 인정 될 것입니다. –

+0

위의 FYI에 대한 바램과 환호, 나는 나중에 참조 할 것을 기억할 것입니다 :) –

1

당신이 시도해야합니다

$query = " 
    SELECT * FROM `GraphicsCards` 
    WHERE 
     `Brand` LIKE '%". $search . "% OR `Model` LIKE %'" . $search . "%"; 
$run = mysqli_query ($connection, $query); 

이 나를 어떻게 작동하는지 알려주십시오.

+0

안녕하세요 Asaf 감사합니다 답변 패트 릭의 대답은 내 문제를 해결 당신의 답변을 주셔서 감사합니다. 건배 –

관련 문제