将信息发送到数据库SQL PHP
我有一张表格要送到桌上。有两个下拉列表。第一个包含有关当前登录用户的作业的信息,第二个获取用户的所有用户名。日期字段、价格字段和注释字段。所以我的代码在这里: 此代码获取所有信息。submit.action.php 我的桌子如下:将信息发送到数据库SQL PHP,php,mysql,Php,Mysql,我有一张表格要送到桌上。有两个下拉列表。第一个包含有关当前登录用户的作业的信息,第二个获取用户的所有用户名。日期字段、价格字段和注释字段。所以我的代码在这里: 此代码获取所有信息。submit.action.php 我的桌子如下: job_id int(11) service_provider_id int(10) customer_id int(10) date
job_id int(11)
service_provider_id int(10)
customer_id int(10)
date int(50)
price int(255)
vote varchar(255)
service_provider_comment varchar(255)
customer_comment varchar(255)
介绍
在查看了您的代码之后,我已经调试了您的代码,并将问题本地化。在这个问题上几乎没有谜题
echo '<select name="job">';
echo '<option value="0">default job</option>';
while ($amch = mysql_fetch_assoc($dbresult))
{
echo '<option value="' . $amch['job_id'] . '">' . $amch['job_name'] . '</option>';
}
我已经在我的测试环境中创建了您的代码场景
您的主表单将提交的内容发布到send\u action.php
问题
为了调试,我在send\u action.php
页面和$selected=..
之后添加了var\u dump($\u POST)行代码>。这是一个很好的例子,看看是否收到了提交的内容
它显示作业出于某种原因未发布,并且您的($\u POST['Job'])
带有错误消息未定义索引
,因为此错误发生在INSERT
语句中。因此,不会插入任何内容
解决方案
我已经检查了作业,它是空的,我添加了一个名为defaultvalue echo“default Job”的选项代码>,这是为了确保如果您的作业列表在测试环境下为空,那么应该提交一些内容,否则它将返回null并给出问题
echo '<select name="job">';
echo '<option value="0">default job</option>';
while ($amch = mysql_fetch_assoc($dbresult))
{
echo '<option value="' . $amch['job_id'] . '">' . $amch['job_name'] . '</option>';
}
echo';
回显“默认作业”;
而($amch=mysql\u fetch\u assoc($dbresult))
{
回显'.$amch['job_name'].';
}
到目前为止还不错
我已经测试过在insert方法中手动注入数据,效果很好
最后:
将默认值放入作业后,现在一切正常,表单正在提交并保存到数据库
结论
切换到MySQLi或PDO很重要
应改进变量命名
利用函数减少大量重复代码,如mysql\u escape\u string
或数据库连接,创建中心页面并包含连接(我有一个答案,显示了一个使用PDO的min项目,您可以查看并获得灵感)
更好、更清晰的代码和数据结构
注
该解决方案是基于您的代码中呈现的内容,我没有机会对最终运行的数据库进行深入测试。我已经创建了一个用于插入数据的表,我还得到了您的旧版本数据库var_dump,这也很有帮助。您的代码可能包含语法错误。请查阅以下链接,并将其应用于您的代码。@Fred ii-没有错误!代码是真的吗?还需要写表实体吗?@Fred ii-我也有错误,这是因为OP使用旧的支持系统,我的和你的环境都不再兼容,我认为这是因为代码的某些组件不推荐使用。;)任何我都会看一看,看看我能做些什么。需要注意的是,您有一个名为date
的字段,它具有特殊的含义-因此您应该将字段名称包含在反勾中。@sajad现在我正在做其他事情,但稍后检查;)你明白我的话哦,那不管用:(问题可能与我的表有关吗?让我将我的表添加到问题中。我知道问题在哪里。当我在表中创建关系时,表单返回null,我有两个主键。但当我删除“有效的关系”属性时!同样@sajad,正如您所看到的,web开发中的每件事情都是相互依赖的,干净的代码、更好的结构、好的变量名和d好的数据库设计将在最终阶段发挥作用,总有一些小问题和挑战,但这些问题和挑战会减少,做得更好。不管怎样,我知道你处于初级阶段,这是很好的,但尝试改进,建议。祝你好运。我很高兴,因为你总是帮助我,我认为我可以改进我的编码在你和其他人的帮助下:)谢谢兄弟:)我想只有你能在这里帮助我:
job_id int(11)
service_provider_id int(10)
customer_id int(10)
date int(50)
price int(255)
vote varchar(255)
service_provider_comment varchar(255)
customer_comment varchar(255)
echo '<select name="job">';
echo '<option value="0">default job</option>';
while ($amch = mysql_fetch_assoc($dbresult))
{
echo '<option value="' . $amch['job_id'] . '">' . $amch['job_name'] . '</option>';
}