2013-03-11 48 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 . "'"; 
}