내 웹 페이지에 대한 검색 기능을 개발하려고합니다. 데이터베이스의 일부 열은 값을 나타내는 정수로 저장됩니다. 결과를 반환 할 때 나는이를 표시하는 기능을 가지고 :이 열을 검색하고 결과를 반환 할 수 있도록하려면저장된 int에 PHP 검색 문자열
public function listsystypestatus($sysobj){
if ($this->sysobj ==='1') return "Core";
if ($this->sysobj ==='2') return "Aggregation";
if ($this->sysobj ==='3') return "Core/Aggr";
if ($this->sysobj ==='4') return "Customer";
if ($this->sysobj ==='5') return "TX Site";
return "--Please Select--";
합니다. 예를 들어 "Cus"에서 와일드 카드 검색을 수행하고이 열의 db에 "4"로 저장된 모든 레코드를 반환합니다. 어떻게 접근 할 수 있는지 잘 모르겠습니다.
내 검색 쿼리는 다른 (문자열) 필드 작동합니다
는if($action=='search' && $search!=NULL){
$wildsearch = "%%$search%%";
$query = "SELECT *, INET_NTOA(ip_add) AS ip_add
FROM `equipment`
LEFT JOIN itam_asset on equipment.itamname=itam_asset.ASSETID
WHERE site_code LIKE :search
OR site_id LIKE :search
OR system_name LIKE :search
OR INET_NTOA(ip_add) LIKE :search
OR sys_loc LIKE :search
OR systype LIKE :search
OR itamname LIKE :search
OR dimetis LIKE :search
OR DNS LIKE :search
";
//Get equipment data
//select and prepare
$database->query($query);
//Bind
$database->bind(':search',$wildsearch);
}else{
....
....
Display results
내가 반환 된 결과를 표시하기 위해 사용하는 코드는 다음과 같습니다 모든
<?php
foreach($rows as $row){
//extract row
//this will make $row['firstname'] to
//just $firstname only
extract($row);
...
...
echo reults
...
...
감사합니다.
편집 : 새로운 쿼리 - 이제 작동 : 나는 당신을 잘 이해한다면 당신은 "기분이야", "4", "고객"때문에 검색하면
$query = "SELECT *, INET_NTOA(ip_add) AS ip_add, list_systype.systype_label
FROM `equipment`
LEFT JOIN itam_asset on equipment.itamname=itam_asset.ASSETID
LEFT JOIN list_systype on equipment.systype=list_systype.systype_value
WHERE site_code LIKE :search
OR site_id LIKE :search
OR system_name LIKE :search
OR INET_NTOA(ip_add) LIKE :search
OR sys_loc LIKE :search
OR list_systype.systype_label LIKE :search
OR itamname LIKE :search
OR dimetis LIKE :search
OR DNS LIKE :search
";
, 당신은 사람들을 통해 자신을 검색하고 결과 INT와 SQL 쿼리를 실행해야합니다. 그렇지 않으면 ID-> 문자열 목록을 별도의 테이블에있는 데이터베이스로 이동하고 검색을 위해 해당 int 열에 JOIN을 수행하십시오. – mario
감사. 위의 쿼리를 수정하고 이제는 훌륭하게 작동합니다.) .... 감사합니다. – Nigel