Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 填充下拉框赢得';无法显示数据库_Php_Mysql_Database_Html Select - Fatal编程技术网

Php 填充下拉框赢得';无法显示数据库

Php 填充下拉框赢得';无法显示数据库,php,mysql,database,html-select,Php,Mysql,Database,Html Select,我试图填充一个下拉框,从MySQL检索数据库。下面是我的表单和php文件。我觉得它看起来不错,但我不明白为什么当我点击提交按钮时它没有显示任何东西。我能做些什么来修复这个错误吗?如有任何更正和建议,将不胜感激 CS\u作业表格包括:job\u title,category\u code(17,27,37…)等 connect.php在这种情况下工作正常 我的表格 建筑与工程 艺术、设计、娱乐、体育和媒体 建筑物和地面的清洁和维护 商业和金融业务 社区和社会服务 计算机与数学 构造与提取 教育、

我试图填充一个下拉框,从MySQL检索数据库。下面是我的表单php文件。我觉得它看起来不错,但我不明白为什么当我点击提交按钮时它没有显示任何东西。我能做些什么来修复这个错误吗?如有任何更正和建议,将不胜感激

CS\u作业
表格包括:
job\u title
category\u code
(17,27,37…)等

connect.php在这种情况下工作正常

我的表格


建筑与工程
艺术、设计、娱乐、体育和媒体
建筑物和地面的清洁和维护
商业和金融业务
社区和社会服务
计算机与数学
构造与提取
教育、培训和图书馆
农业、渔业和林业
食品制备和服务相关
医疗从业者和技术人员
医疗支持
安装、维护和维修
合法的
生命、物理和社会科学
管理层
办公室和行政支助
个人护理和服务
生产
保护服务
销售及相关
运输及物料搬运
csjob.php



这个问题有这么多的拼写错误,下面是我上传的实际代码:

你的代码毫无意义。如果存在特定表单字段,则运行查询,但仅当同一表单字段不存在时才运行“显示结果”代码


最简单的修复方法:删除
}否则{
..

您的代码毫无意义。如果某个特定表单字段存在,则运行查询,但仅当该表单字段不存在时才运行“显示结果”代码

<?php 
    require("connect.php");
    if(isset($_POST['submit']))
    {
        $sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
        $result = mysql_query($sql);
        if( mysql_num_rows( $result ) > 0 ){
            echo "<select name='category_code'>";
              while ($row = mysql_fetch_array($result)) {
                  echo "<option value='".$row['job_title']"'>".$row['job_title']"</option>";
                }

            echo "</select>";
          }
    }


?>
最简单的修复方法:删除
}其他{
..


<?php 
    require("connect.php");
    if(isset($_POST['submit']))
    {
        $sql = "SELECT * FROM CS_JOBS WHERE category_code=".$_POST['category_code'];
        $result = mysql_query($sql);
        if( mysql_num_rows( $result ) > 0 ){
            echo "<select name='category_code'>";
              while ($row = mysql_fetch_array($result)) {
                  echo "<option value='".$row['job_title']"'>".$row['job_title']"</option>";
                }

            echo "</select>";
          }
    }


?>

您有3个小问题。第一个是形式的

<select name = "category_code[]">
$row['job_title'}
应该是

<select name="category_code">
$row['job_title']
if(isset($_POST['category_code'])){
所以用
]

第三个问题与检查提交有关:

if(isset($_POST['submit'])){
应该是

<select name="category_code">
$row['job_title']
if(isset($_POST['category_code'])){

因为您没有名为“提交”的字段。您有一个带有idsubmit和valuesubmit的字段。但是没有名称提交。您可以将
name='submit'
添加到提交按钮。或者按照我上面建议的改变去做…

你有三个小问题。第一个是,形式为

<select name = "category_code[]">
$row['job_title'}
应该是

<select name="category_code">
$row['job_title']
if(isset($_POST['category_code'])){
所以用
]

第三个问题与检查提交有关:

if(isset($_POST['submit'])){
应该是

<select name="category_code">
$row['job_title']
if(isset($_POST['category_code'])){


因为您没有名为“提交”的字段。您有一个带有idsubmit和valuesubmit的字段。但是没有名称提交。您可以将
name='submit'
添加到提交按钮。或者只需执行我上面建议的更改…

代码中可爱的漏洞。对你来说更重要的是。。。要正确显示下拉列表,还是要防止服务器成为pwn3d?请将$sql包含在quotes@MarcB:两者都有。我在代码中没有看到任何漏洞。这只是一个样本。我可能错了。Thanks@bunch:有人伪造了提交,并且没有
submit=0;删除表CS\U作业--
。“砰”的一声传到你的桌子上,砰的一声传到你的网站上。@Mihai:用引号括起$sql$sql=“从CS_作业中选择*,其中category_code=“.$_POST['category_code'”;代码中存在可爱的漏洞。对你来说更重要的是。。。要正确显示下拉列表,还是要防止服务器成为pwn3d?请将$sql包含在quotes@MarcB:两者都有。我在代码中没有看到任何漏洞。这只是一个样本。我可能错了。Thanks@bunch:有人伪造了提交,并且没有
submit=0;删除表CS\U作业--
。“砰”的一声传到你的桌子上,砰的一声传到你的网站上。@Mihai:用引号括起$sql$sql=“从CS_作业中选择*,其中category_code=“.$_POST['category_code'”;是的,我确实从代码中删除了else语句。它在我的屏幕上显示为空白@MarcBadd错误处理,例如,
$result=mysql\u query($sql)或die(mysql\u error())。如果类别代码是字母数字,则需要在值周围加引号,例如
category\u code='$val'
。所有代码都假设世界是完美的,没有任何东西会失败。糟糕的设计选择。假设一切都失败了,把成功当作一个惊喜。非常感谢。这真的很有帮助@MarcBYeah我确实从代码中删除了else语句。它在我的屏幕上显示为空白@MarcBadd错误处理,例如,
$result=mysql\u query($sql)或die(mysql\u error())。如果类别代码是字母数字,则需要在值周围加引号,例如
category\u code='$val'
。所有代码都假设世界是完美的,没有任何东西会失败。糟糕的设计选择。假设一切都失败了,把成功当作一个惊喜。非常感谢。这真的很有帮助@MarcBnotice此
$row['job_title'}
应为
$row['job_title']
=)注意此
$row['job_title'}
应为
$row['job_title']
=)!我已经修复了您上面提到的所有问题。谢谢!@nl xGood听到您的小问题已经解决。现在,您还有一个大问题:SQL注入现在是可能的…在设置$SQL之前,您应该添加:
$\u POST['category\u code']=“”。mysql\u real\u escape\u string($\u POST['category\u cod