2014-03-03 90 views
2

我想更新我的數據庫中的一行像這樣。PHP MySql數據庫陣列更新

if (isset($_POST['submit'])) { 
$sizes = array($_POST['size_king'], 
       $_POST['size_queen'], 
       $_POST['size_double'] 
      ); 

mysqli_query($con, "UPDATE beds 
       SET `Available Sizes` = '$sizes' 
       WHERE ID = '$prod_id' " 
      ); 
} 

任何人都可以幫我嗎?

我希望此數據只更新一行,並且數據必須用逗號分隔。

我想也許是FOR循環,但我不太確定。

回答

3

只是使用implode()函數。

if (isset($_POST['submit'])) { 
$sizes = array($_POST['size_king'], 
       $_POST['size_queen'], 
       $_POST['size_double'] 
      ); 
$sizes=implode(",",$sizes); 
mysqli_query($con, "UPDATE beds 
       SET `Available Sizes` = '$sizes' 
       WHERE ID = '$prod_id' " 
      ); 
} 
+0

只要他/她想在數據庫中添加CSV值,Implode就是一個很好的解決方案。 –

+1

@RajivPingale我們的代碼只取決於需求。 –

+1

太容易了。真棒!謝謝。 –

0

PHP implode函數將爲您的目的服務。

implode將數組元素連接到由我們指定的粘膠分隔的字符串中。語法是:

string implode (string $glue , array $pieces) 

參考:http://in3.php.net/manual/en/function.implode.php

例子:

<?php 

$array = array('lastname', 'email', 'phone'); 
$comma_separated = implode(",", $array); 

echo $comma_separated; // lastname,email,phone 

// Empty string when using an empty array: 
var_dump(implode('hello', array())); // string(0) "" 

?> 
-1

有在創建數據庫從未命名您的表作爲「牀位」我的意思是沒有一個catch使用空間嘗試使用「AvailabaleSizes」或Available_Sizes或「availableSizes」在這個改變後寫如下的查詢。

($con, "UPDATE `beds` SET Available_Sizes = '$sizes' WHERE ID = '$prod_id'"); 
+0

我不認爲這解決了問題。 –

+0

你試過了嗎? ü應該檢查你的HTML也 –

+0

'Implode'解決了我的問題。謝謝 –