我一直在寻找几个小时的发型,我无法弄明白。 我所拥有的是一个我想放入数据库的数组
if(isset($_POST['newvalue']))
{
$array = $_POST['newvalue'];
$getcatidquery = mysql_query("SELECT * FROM categories_to_sales WHERE sales_id = $saleid");
foreach($array as $value) {
while($getcatid = mysql_fetch_assoc($getcatidquery)) {
$catid = $getcatid['categories_id'];
}
mysql_query("UPDATE categories_to_sales SET value = '$value' WHERE sales_id = '$saleid' AND categories_id = '$catid'");
}
echo "Executed a Query.";
}
上面的代码是按下更新表单的提交按钮时正在执行的代码。但是,此代码仅更新表单中的最后一个输入而不是全部输入..
$ _ POST ['newvalue']是数组,我也可以在var_dump中显示这个数组。
是的,我知道我没有使用PDO,我也不想使用它,因为整个系统都是用mysql制作的,公司不会更新他们的PHP版本。 (我只是这样说,因为上次这是我对代码的唯一评论。)
输入表格:
while($rowc = mysql_fetch_assoc($sql))
{
echo '<br/>' . $rowc['categorie_name'] . ' - ' . $rowc['value'];
echo '<input type="text" class="valueField" name="newvalue[]" id="newvalue"/>';
}
$sql = mysql_query("SELECT * FROM categories_to_sales
LEFT JOIN sales ON categories_to_sales.sales_id=sales.sales_id
LEFT JOIN categories ON categories_to_sales.categories_id=categories.categorie_id
WHERE sales.sales_id = '$saleid'
");
答案 0 :(得分:2)
您可以使用序列化来存储数据库中的php数组:
$becomeString = serialize($yourArray);
如果要将其作为数组返回,请使用unserialize:
$returnArray = unserialize($myStringCreatedWithSerialize);
检查:
答案 1 :(得分:1)
您必须在while循环中执行UPDATE语句:
更改此
foreach($array as $value) {
while($getcatid = mysql_fetch_assoc($getcatidquery)) {
$catid = $getcatid['categories_id'];
}
mysql_query("UPDATE categories_to_sales SET value = '$value' WHERE sales_id = '$saleid' AND categories_id = '$catid'");
}
要
foreach($array as $value) {
while($getcatid = mysql_fetch_assoc($getcatidquery)) {
$catid = $getcatid['categories_id'];
mysql_query("UPDATE categories_to_sales SET value = '$value' WHERE sales_id = '$saleid' AND categories_id = '$catid'");
}
}
答案 2 :(得分:1)
您可以使用serialize在DB中插入数组,并使用for DB中的fetch数组进行反序列化:
$arr = serailize($data);
$arr = unserailize($data);
有关详细信息,请参阅:
答案 3 :(得分:0)
如果您能够通过var_dump
获取数组值并希望将数组数据保存到数据库中,那么最好将数组数据编码为字符串并保存。当通过select语句获取数据时,将其解码为数组格式。
将数组数据编码为字符串:
$encodedArray = json_encode($array);
将字符串数据(由json编码)解码为数组:
$decodeArray = json_decode(MYSQL_FETCHED_VALUE, true);
您也可以使用serialize
和deserialize
将数组数据保存到数据库中。
希望会有所帮助!