0

「ソフト削除」列を除外するクエリを取得するのに問題があります。これを機能させるためのヒントの下にコードを添付しましたか? = 1の行がdeleted表示され、0を表示するためだけに必要です

$query=mysql_real_escape_string($_GET['query']);

$query_for_result=mysql_query("SELECT * FROM Assets WHERE 
`Badge` like '%".$query."%' or 
`Status` like '%".$query."%' or 
`First Name` like '%".$query."%' or 
`Last Name` like '%".$query."%' or 
`Service Tag` like '%".$query."%' or 
`Asset Tag` like '%".$query."%' and
`deleted` = '0' ")or die(mysql_error());



if(mysql_num_rows($query_for_result1)==0){

}

while($data_fetch=mysql_fetch_array($query_for_result))
{

echo '<h3>';    
echo "<a href=\"modify.php?id=" . $data_fetch['id'] . "\">" . $data_fetch['First Name']  . ' ' . $data_fetch['Last Name'] . "</a>";
echo '<br/><b>Badge:</b> '. $data_fetch['Badge'];
echo '<br/> <b>Service Tag:</b> '. $data_fetch['Service Tag'];
echo ' <b>Asset Tag:</b> '. $data_fetch['Asset Tag'];
echo '<br/> <b>Status:</b> '. $data_fetch['Status'];
echo '<br/><b>Employee Status: </b>';
    if( $data_fetch['Employee Status'] == 'Active' ){
echo '<font color="#32CD32">' . $data_fetch['Employee Status'] . '</font>';
    }
elseif( $data_fetch['Employee Status'] == 'Terminated' ){
echo '<font color="red">' . $data_fetch['Employee Status'] . '</font>';}
echo '<br/> <b>Last Modified:</b> '. $data_fetch['Last Modified'];
echo "<span> </span>";
echo '</h3>';
echo '<br/><p>' ; 

}
4

1 に答える 1

1

すべての条件は同じスコープにあります。これが意味することは、true である最初の条件にヒットするとすぐに、where 句全体が true になるということです。OR 句を括弧で囲む必要があります。

WHERE 
(
`Badge` like '%".$query."%' or 
`Status` like '%".$query."%' or 
`First Name` like '%".$query."%' or 
`Last Name` like '%".$query."%' or 
`Service Tag` like '%".$query."%' or 
`Asset Tag` like '%".$query."%'
)
and `deleted` = '0'
于 2012-07-25T17:10:15.593 に答える