2012-07-25 64 views
0

我在查询时排除我的“软删除”列时出现问题我已将以下代码附加到了我的代码之下,以获取此工作的任何提示?它表明,具有deleted = 1行和我需要它只是为了显示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>' ; 

} 

回答

1

所有的条件是在同一范围内。这意味着,只要你达到第一个条件,那么整个where子句就是真实的。你需要把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' 
+0

这个作品很完美。也感谢解释为什么它没有工作!我刚刚学习这个东西,像你这样的职位是非常有帮助的:) – user1548769 2012-07-25 17:16:34