一个PHP表单保存到MySQL,另一个不保存';t、 不知道为什么
我们有一个PHP网站,有多个表单保存到数据库中。我们有两个页面,都保存了相似的信息。正确保存所有这些信息。第二个,我正在尝试更正,未能保存其中一个字段,area_info 它是否应该像我编辑.php文件并从有效的文件复制UPDATE语句并将其放入无效的文件一样简单 检查非工作页面上的元素时,未保存字段的文本框显示为:一个PHP表单保存到MySQL,另一个不保存';t、 不知道为什么,php,mysql,Php,Mysql,我们有一个PHP网站,有多个表单保存到数据库中。我们有两个页面,都保存了相似的信息。正确保存所有这些信息。第二个,我正在尝试更正,未能保存其中一个字段,area_info 它是否应该像我编辑.php文件并从有效的文件复制UPDATE语句并将其放入无效的文件一样简单 检查非工作页面上的元素时,未保存字段的文本框显示为: <input type="text" value="" name="area_info[10]"> 不适用于字段,但在不同的PHP文件中 for($x = 1; $x
<input type="text" value="" name="area_info[10]">
不适用于字段,但在不同的PHP文件中
for($x = 1; $x <= 100; $x++) {
if(trim($area_name[$x]) <> $null) {
if($area_id[$x] <> $null) {
$sql = "UPDATE tracking.areas
SET area_name = '{$area_name[$x]}',
area_info = '{$area_info[$x]}',
area_sort = '{$area_sort[$x]}',
contest_id = '{$contest_id}',
tracking_id = '{$tracking_id}'
WHERE area_id = '{$area_id[$x]}' ";
}
else {
$sql = "INSERT INTO tracking.areas
(area_name,
area_info,
area_sort,
contest_id,
tracking_id)
VALUES
('{$area_name[$x]}',
'{$area_info[$x]}',
'{$area_sort[$x]}',
'{$contest_id}',
'{$tracking_id}') ";
}
对于($x=1;$x从技术上讲,您应该使用单引号”
而不是双引号“
来包装字符串。双引号可能根据您的MySQL配置工作,但单引号更好
因此,您需要的更新:
$ar_info_update_sql = "
UPDATE tracking.areas
SET area_info = '{$ar_info}'
WHERE area_id = '{$ar_id'}'";
还请注意,我将变量包装在花括号中,在我看来,这是更好的做法,它还允许将非平凡变量插入字符串中,例如
$a = "This is a {$array['some_index']}";
$b = "And that is a {$someObj->someProperty}";
$c = "And then we have {$someObj->someFUnction()}";
另一方面,mysql_*函数已被弃用,不建议使用。请看一看PDO或mysqli_*取而代之……变量$null
包含哪些内容?如何声明以及在何处声明?它们与已失效的mysql_*函数有足够的不同,从而使整个问题无效。您需要进行一些重写。是否es$area\u name[$x]
有值吗?或死($get\u area\u id\u sql)
?如果失败,似乎是一个无休止的循环。@EntiendNull Ok。但是,通常最好检查是否存在实际错误(如果存在)。小心地建议使用PHP短标记。PHP5.5之前的版本通常必须在PHP.ini文件中手动打开此选项。这通常不是默认设置……我如何判断正在运行的PHP版本?Tha这可能会有帮助,但我不知道如何找到它来告诉你们。谢谢,我会更新短标签。这只是我的习惯。你可以用/**/tags来注释它,两者之间唯一的区别是:$ar\u info=$area\u info[$ar\u id];
我没有看到你从哪里得到$area\u info[]
因此我将数组从请求变量$\u POST['area\u info'][]
。你只需要确保你发送了这个$contest\u id
,它就可以工作了。@DanceSC谢谢,很抱歉我回答错了人!谢谢!你知道,我确实注意到了两者之间的花括号差异,但我真的不知道它们的影响有多大。我会试一试。谢谢s、 但当我使用这段代码时,页面甚至不会加载任何内容。不知道为什么。@Populus
<?php
// Specify what $contest_id is!
$sq = "SELECT area_id FROM areas WHERE contest_id ='".$contest_id."'";
$qu = mysql_query($sq) or die(mysql_error());
while ($fe = mysql_fetch_assoc($qu)) {
if (isset($_POST['area_info'][$fe['area_id']])) {
$sql = "UPDATE tracking.areas SET area_info ='".$_POST['area_info'][$fe['area_id']]."' WHERE area_id ='".$fe['area_id']."'";
mysql_query($sql) or die(mysql_error());
}
}
?>
$ar_info_update_sql = "
UPDATE tracking.areas
SET area_info = '{$ar_info}'
WHERE area_id = '{$ar_id'}'";
$a = "This is a {$array['some_index']}";
$b = "And that is a {$someObj->someProperty}";
$c = "And then we have {$someObj->someFUnction()}";