2013-07-02 29 views
-2

我需要在數據庫中插入動態數組值。因爲我在用戶輸入值時調用row_count上的數組增加了動態數組的數量。如何在php中的數據庫中插入動態數組值?

for ($i = 0; $i < $row_count; $i++) { 

    echo "<td>" . "Total Consumption in kw/h" . "</td>"; 

    $hj[] = $uy11[$i] + $uy112[$i] + $uy111[$i]; 
    echo "<td>" . round(($hj[$i]), 2) . "</td>"; 

    if ($tube11 == $tube11 && $fan1 == $fan1 && $bulb1 == $bulb1) { 

     $all[] = $tube11[$i] + $fan1[$i] + $bulb1[$i]; 
     echo "<td>" . round(($all[$i]), 2) . "</td>"; 

     $bu[] = $hj[$i] - $all[$i]; 
     echo "<td>" . round(($bu[$i]), 2) . "</td>"; 

     $bu1[] = ($bu[$i]/$hj[$i]) * 100; 
     echo "<td>" . round(($bu1[$i]), 2) . "</td>"; 

    } else if ($tube12 == $tube12 && $fan12 == $fan12 && $bulb12 == $bulb12) { 

     $aq[] = $tube12[$i] + $fan12[$i] + $bulb12[$i]; 
     echo "<td>" . $aq . "</td>"; 
    } 

    echo "</tr>"; 
} 

$asp = implode($hj, ','); 
$asp1 = explode(',', $asp); 
print_r($asp); 

$asp2 = implode($all, ','); 
$asp22 = explode(',', $asp2); 
print_r($asp2); 

$sql = "INSERT INTO dea (did,c1, c2, timestamp) VALUES ('',$asp, $asp2,'" . date("Y-m-d H:i:s") . "')"; 
$stmt = mysql_query($sql) or die(mysql_error()); 

我上面的代碼執行用於一次陣列,但如果數數組值的數量增加,他們不會在database.like插入如果在$asp值是2$asp1值是3它們被插入在分貝但是如果$asp的值是[0]=1, [1]=2,則不會插入。 我需要插入這兩個值。

+7

建議的一句話:我不知道你的問題域, asp22'和'$ uy112'都會去l讓你在角落流口水;最好使用更多的描述性名稱。 – Dan

+0

先生我只是當數組$美元兩個值或超過兩個值來如何插入這些值在數據庫中 – ashy1234

+2

'if($ tube11 == $ tube11 && $ fan1 == $ fan1 && $ bulb1 == $ bulb1 )'如果陳述沒有意義,它們總是平等的。 elsif永遠不會被執行。但是如果你想在數據庫中創建一條新記錄,那麼你可能需要將插入操作移動到for循環中。 – Doon

回答

0

當$ ASP是一個這樣的數組:

[0] => 1 
[1] => 2 
[2] => 3 

您可以通過執行

foreach($asp as $key => $value){ 
    echo $value; 
} 

既然你是一個懶惰的程序員獲取值,這是笏你可以這樣做: 你想要將$ asp和$ asp2插入你的數據庫,如果我的問題正確。

$new_array = array_combine($asp,$asp2); 

foreach($new_array as $key => $value){ 
    $sql = "INSERT INTO dea (did,c1, c2, timestamp) VALUES ('',$key, $value,'".date("Y-m-d H:i:s")."')"; 
    $stmt = mysql_query($sql) or die(mysql_error()); 
} 

順便說一下,就像Doon說的:你的if語句沒有任何意義。

if ($tube11==$tube11 && $fan1==$fan1 && $bulb1==$bulb1) 

這將永遠是真實的。

+0

我如何插入數據庫中的值 – ashy1234

+0

通過將查詢添加到foreach循環中 – Matheno

+0

可以爲我編輯代碼 – ashy1234

0

你需要找到一些方法來編碼表中的數組。

或者:

  1. 使用一個「基地」表具有用於值的單獨的表,並鏈接到數組列表
  2. 編碼整個陣列和序列化它作爲一個blob
  3. 編碼陣列base64(或類似的)並將其寫成字符
+0

可以爲我做代碼 – ashy1234

+1

@ ashy1234堆棧溢出是*不是*一個網站,您可以讓專業程序員免費爲您編寫代碼。 –

相關問題