2013-03-11 86 views
2

使用的html FORM X和Y之间的所有数字,让我们转换$core100$mhz1000
emagkoyos是表行
所以,如果$core设置$parameters['emag'] = "$core";emag=100否则它是null
ANDWHERE被设置为出现,所以问题是我收集它们中的所有变量数据$parameters[]foreach()
随着我的代码,我正在得到什么$core是。这是代码:SQL查询显示使用PHP

if (!empty($core)) { 
$parameters['emag'] = "$core"; 

} 
if (!empty($mhz)) { 
$parameters['koyos'] = $mhz; 
    } 

$sql = "SELECT * FROM $tbl_name WHERE 1=1 "; 
if (!empty($parameters)) { 
foreach ($parameters as $k => $v) { 
    $sql .= " AND " . $k . "='" . $v . "'"; 
} 
    } 
$sql .= " ORDER BY emag, performanta_cpu_core DESC, performanta_cpu DESC LIMIT $start, $limit"; 

而且它与emag=100结果只是行,但我需要所有的数字等于或大于100一点不只是100

回答

2

你基于您提供的数据,查询条件是:

WHERE 1=1 AND emag = '100' AND koyos = '1000'

所以显然只会显示行emag = 100。如果你想显示所有这些高达100然后更改=<=当表名是emag

foreach ($parameters as $k => $v) { 

    if ($k == 'emag') 
    { 
     $sql .= " AND " . $k . "<='" . $v . "'"; 
    } 

    else 
    { 
     $sql .= " AND " . $k . "='" . $v . "'"; 
    } 

} 
1

试试这个:

foreach ($parameters as $k => $v) { 

    if ($k == 'emag') { 
     $sql .= " AND " . $k . "<='" . $v . "'"; 
     continue; 
    } 

    $sql .= " AND " . $k . "='" . $v . "'"; 
}