2015-04-17 146 views
1

我嘗試從數組中的SQL數據庫檢索數據。它的工作原理應該如此,但我確實遇到了一個特定數據條目的問題。讓我解釋一下:使用foreach從MySQL中檢索數據

我從表單中檢索我的數據。如果用戶填寫表單,數據將被保存在數據庫中,我現在檢索數據是這樣的:

$que10 = $wpdb->get_results("SELECT value FROM `wp_rg_lead_detail` WHERE `field_number` = '10'"); 

然後我使用的foreach:

foreach ($que10 as $key8) { 
$dd5 = $key8->value; 
} 

然後,我有我的陣列:

$placeholders = array('[id]', '[dd1]', '[dd2]', '[dd3]', '[dd4]', '[dd5]', '[dd6]', '[dd7]', '[dd8]', '[dd9]', '[dd10]', '[dd11]', '[dd12]'); 

      $actvalues = array($lastgridid, $fullname, $string, $dd3, $dd5, $dd6, $dd7, $dd8, $dd9, $dd10, $dd11, $ga, $dd12); 

請注意,這只是我的完整代碼片段,但這種方式檢索數據工作正常。

現在的問題是,窗體還有一個帶有六個複選框的字段。這些數據將被保存在數據庫中一樣,你可以在這裏看到:

enter image description here

所以場數爲1.1,1.2,1.3,1.4,1.5和1.6!我想使用此代碼檢索這些數據:

$que1 = $wpdb->get_results("SELECT value FROM `wp_rg_lead_detail` WHERE `field_number` LIKE '%1.1%' OR `field_number` LIKE '%1.2%' OR `field_number` LIKE '%1.3%' OR `field_number` LIKE '%1.4%' OR `field_number` LIKE '%1.5%' OR `field_number` LIKE '%1.6%'"); 

這是工作,但我現在用這個的foreach:

foreach ($que1 as $key12) { 
$dd12 = $key12->value; 
} 

而作爲結果,我只得到哪怕一個複選框,導致所有的時間,用戶選中四個複選框,只顯示一個複選框結果。

有人能告訴我如何更改foreach代碼,以便所有結果都會顯示出來,而不僅僅是一個?

+0

請問'echo $ wpdb-> num_rows'? – sitilge

回答

0

試試這個

$que1 = $wpdb->get_results("SELECT value FROM `wp_rg_lead_detail` WHERE `field_number` LIKE '%1.1%' OR `field_number` LIKE '%1.2%' OR `field_number` LIKE '%1.3%' OR `field_number` LIKE '%1.4%' OR `field_number` LIKE '%1.5%' OR `field_number` LIKE '%1.6%'",ARRAY_A); 

while ($row = mysql_fetch_assoc($que10)) { 
    echo $row["wp_rg_lead_detail"]; 
} 

注意:你需要的最後一個參數ARRAY_A

0

使用MySQL的IN()函數,它是清潔的。如果用戶檢查4個複選框,例如1.1,1.2,1.5,1.6下面會輸出四行。

$q = "SELECT value 
     FROM `wp_rg_lead_detail` 
     WHERE `field_number` IN ('1.1', '1.2', '1.3', '1.4', '1.5', '1.6') "; 

$r = $wpdb->get_results($q); 

foreach ($que1 as $key12) { 
    echo $key12->value . "<br>"; 
}