Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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 使用下拉菜单查询mysql_Php_Html_Mysql - Fatal编程技术网

Php 使用下拉菜单查询mysql

Php 使用下拉菜单查询mysql,php,html,mysql,Php,Html,Mysql,这里是初学者;我已经搜索了很多例子,仍然需要一些帮助。 我希望用户从下拉框中选择一个选项,该选项将在mysql中查询一个表。我不明白如何(在我的html文件中)在getprojectstatus.php中显示select语句 <html> <head> <title>Status Dashboard</title> </head> <body style="background:#19245e url('images/f

这里是初学者;我已经搜索了很多例子,仍然需要一些帮助。 我希望用户从下拉框中选择一个选项,该选项将在mysql中查询一个表。我不明白如何(在我的html文件中)在getprojectstatus.php中显示select语句

<html>
<head>
    <title>Status Dashboard</title>
</head>

<body style="background:#19245e url('images/fade.png')repeat-x;font-size:12px;font-family: Arial;line-height:18px;color:#FFFFFF;">
    <script>
        function displayProject(option)
            {
            var x;
            if (option=='sciplay')
            {                        
             x="show Sciplay selected, show notes, status, etc..."
            }

            else if (option=='oklahoma')
            {
             x="show OK selected, show..."
            }

            else if (option=='northdakota')
            {
             x="show North Dakota selected, show..."
            }

            else if (option=='audit')
            {
             x="show Audit selected, show..."
            }

            else if (option=='sggaming')
            {                           
             x="show SG Gaming selected, show..."
            }

            else if (option=='all')
            {
             x="..."//(option=(1+2+3+4+5))
            }
            document.getElementById("demo").innerHTML=x;
            }

    </script>

    <div align="center">
        <TABLE BORDER="1">
        <TR>
            <TD><img src='images/header.png'/>
            </TD>
        </TR>

        <TR>
            <TD>
                <TABLE BORDER="0" bgcolor="C0C0C0" align="left">
                    <TH>Projects
                    </TH>
                    <TR>
                        <TD>
                            <FORM action="getprojectstatus.php" method="post">
                                <SELECT onload="displayProject(this.value);" onchange="displayProject(this.value);">
                                    <OPTION VALUE='all'>ALL</OPTION>
                                    <OPTION VALUE='sciplay'>Sciplay</OPTION>
                                    <OPTION VALUE='oklahoma'>Oklahoma</OPTION>
                                    <OPTION VALUE='northdakota'>North Dakota</OPTION>
                                    <OPTION VALUE='audit'>Audit SSAE16</OPTION>
                                    <OPTION VALUE='sggaming'>SG Gaming</OPTION>
                                </SELECT>
                            </FORM>
                        </TD>
                    </TR>

                </TABLE>
            </TD>
        </TR>

        <TR>
            <TD>
                <p id="demo">
                </p>
            </TD>
        </TR>

        </TABLE>

    </div>
</body>

状态仪表板
功能显示项目(选项)
{
var x;
如果(选项=='sciplay')
{                        
x=“显示所选内容、显示备忘、状态等…”
}
否则如果(选项=='oklahoma')
{
x=“显示选定的确定,显示…”
}
否则如果(选项=='northdakota')
{
x=“显示选定的北达科他州,显示…”
}
else if(选项=='audit')
{
x=“显示已选择的审核,显示…”
}
else if(选项=='sggaming')
{                           
x=“显示选定的游戏,显示…”
}
else if(选项=='all')
{
x=“…”/(选项=(1+2+3+4+5))
}
document.getElementById(“demo”).innerHTML=x;
}
项目
全部的
Sciplay
奥克拉荷马
北达科他州
审计SSAE16
SG游戏

和我的getprojectstatus.php文件:

<?php
//create connection variables
$host=`localhost`;
$user=`dashboard`;
$pw=`password`;
$db=`status`;
//create connection
$con=mysqli_connect("$host", "$user", "$pw", "$db");
//check connection
if (mysqli_connect_errno($con))
{
 echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

//take input from form and store as var queries
$option= $_POST['option'];

if ($option == 'sciplay')
{
 $queries = "SELECT * FROM status where project=1"
}

else if ($option == 'oklahoma')
{
 $queries = "SELECT * FROM status where project=2"
}

else if ($option == 'northdakota')
{
 $queries = "SELECT * FROM status where project=3"
}

else if ($option == 'audit')
{
 $queries = "SELECT * FROM status where project=4"
}

else if ($option == 'sggaming')
{
 $queries = "SELECT * FROM status where project=5"
}

else ($option == 'all')
{
 $queries = "SELECT * FROM status"
}

//store query as var result
$queries=$query;
$result=@mysqli_query($con,"$query");
//echo var result in table format
echo "<table border='1'>
<tr>
<th>Project</th>
<th>Subject</th>
<th>Status</th>
</tr>";

while($row = mysqli_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['project'] . "</td>";
echo "<td>" . $row['subject'] . "</td>";
echo "<td>" . $row['entry'] . "</td>";
echo "</tr>";
}
echo "</table>";
//close mysql connection
mysqli_close($con);
?>


提前谢谢你的帮助

我不确定我是否正确理解了这个问题,但这可能适合您:

<FORM action="getprojectstatus.php" method="post">
 <SELECT onload="displayProject(this.value);" onchange="displayProject(this.value);">
  <OPTION VALUE='none'>ALL</OPTION>
  <OPTION VALUE='1'>Sciplay</OPTION>
  <OPTION VALUE='2'>Oklahoma</OPTION>
  <OPTION VALUE='3'>North Dakota</OPTION>
  <OPTION VALUE='4'>Audit SSAE16</OPTION>
  <OPTION VALUE='5'>SG Gaming</OPTION>
 </SELECT>
</FORM>

我还建议您研究一些PHP框架,也许还可以学习MVC模式。

好的,看来您还没有完全掌握基于web的系统中使用的客户机/服务器模型(我们一开始都在那里)

这里有一个简短的概述,然后我们将讨论你的问题所在

  • 打开浏览器并键入URL,然后按enter键
  • 您的浏览器向承载您输入的URL的服务器发送请求
  • 服务器解析请求并加载请求的特定文件。出于我们的目的,这意味着运行PHP文件以最终生成HTML和javascript输出
  • 它将此HTML(和javascript)发送到浏览器。没有可执行的PHP被发送到浏览器,它都留在服务器上
  • 您的浏览器接收此HTML(和javascript)并显示它
  • 您的浏览器可以在页面上执行任何javascript,但如果它需要页面源中尚未包含的信息,则必须从服务器请求。它可以通过以下两种方式之一实现:a)您可以使用正确的参数向服务器发送一个全新的请求,以便预先包含所需的信息;b)您可以运行ajax请求以获取所需的信息,然后将其插入页面
  • 因此,乍一看,故障似乎发生在第5步和第6步之间,您已经在浏览器中加载了整个页面,它需要服务器提供更多信息,但您从未真正向服务器发送该请求。如果要将该请求发送到服务器(通过向表单中添加提交按钮,或向
    displayProject()
    函数中添加表单提交请求),则(当前)无法将该新信息插入现有页面

    因此,有两个潜在的答案可以解决您的问题:

    如果您想更好地理解如何编写PHP应用程序,因为您打算在将来做更多的工作:

    。。。然后,您应该将这两个单独的文件重写为一个单独的文件。(我几乎按原样插入了您的代码,我没有做任何错误检查)


    。。。这里所做的一切就是将“option”选择发送到getprojectstatus.php,该文件为您的表生成HTML输出,然后一旦收到,它就会运行“success”,它只是将数据直接插入到具有“demo”id属性的元素中。你应该考虑把它改成<代码> <代码>,因为<代码> <代码>可能会引起头痛。

    你能解释一下卡在哪里吗?什么不适合您?当我从下拉列表中选择一个选项时,php中的select语句不会显示。您的html文件的名称是什么?您是否在这里显示了整个文件,或者是否有其他PHP正在进行中?我请求您帮助我了解您的页面是如何工作的。您在数据的传递方式上犯了一个简单的错误(一开始很常见)。感谢Teodor,这是一个更优雅的PHP代码。我想我问得不清楚。当用户单击下拉菜单中的一个选项时,我希望mysql表的结果在HTML页面中显示给用户。我想让html中的var x回显php查询中的select语句,这正是代码的问题所在。任何错误或不做你想做的事。请帮助我理解。我的代码不是我想要的。如何在函数displayProject中设置var x来显示在php中运行的查询?非常全面的答案。如果StackOverflow让我投票两次,我会的。
    $option= $_POST['option'];
    
    $queries = "SELECT * FROM status"
    if ($option != 'none'){
     $queries = "SELECT * FROM status where project=".$option
    }
    
    <?php
    //create connection variables
    $host=`localhost`;
    $user=`dashboard`;
    $pw=`password`;
    $db=`status`;
    //create connection
    $con=mysqli_connect("$host", "$user", "$pw", "$db");
    //check connection
    if (mysqli_connect_errno($con))
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }
    
    //take input from form and store as var queries
    $option= $_POST['option'];
    
    if ($option == 'sciplay')
    {
        $queries = "SELECT * FROM status where project=1"
    }
    
    else if ($option == 'oklahoma')
    {
        $queries = "SELECT * FROM status where project=2"
    }
    
    else if ($option == 'northdakota')
    {
        $queries = "SELECT * FROM status where project=3"
    }
    
    else if ($option == 'audit')
    {
        $queries = "SELECT * FROM status where project=4"
    }
    
    else if ($option == 'sggaming')
    {
        $queries = "SELECT * FROM status where project=5"
    }
    
    else ($option == 'all')
    {
        $queries = "SELECT * FROM status"
    }
    
    //store query as var result
    $queries=$query;
    $result=@mysqli_query($con,"$query");
    
    //The actual echo of the table display was moved to the area of the page it actually needs to go
    
    //close mysql connection
    mysqli_close($con);
    ?>
    <html>
    <head>
        <title>Status Dashboard</title>
    </head>
    
    <body style="background:#19245e url('images/fade.png')repeat-x;font-size:12px;font-family: Arial;line-height:18px;color:#FFFFFF;">
        <script>
        function displayProject(option)
            {
            var x;
            if (option=='sciplay')
            {                        
             x="show Sciplay selected, show notes, status, etc..."
            }
    
            else if (option=='oklahoma')
            {
             x="show OK selected, show..."
            }
    
            else if (option=='northdakota')
            {
             x="show North Dakota selected, show..."
            }
    
            else if (option=='audit')
            {
             x="show Audit selected, show..."
            }
    
            else if (option=='sggaming')
            {                           
             x="show SG Gaming selected, show..."
            }
    
            else if (option=='all')
            {
             x="..."//(option=(1+2+3+4+5))
            }
            document.getElementById("demo").innerHTML=x;
            }
    
        </script>
    
        <div align="center">
            <TABLE BORDER="1">
            <TR>
                <TD><img src='images/header.png'/>
                </TD>
            </TR>
    
            <TR>
                <TD>
                    <TABLE BORDER="0" bgcolor="C0C0C0" align="left">
                        <TH>Projects
                        </TH>
                        <TR>
                            <TD>
                                <!--
                                SOME CHANGES HERE: The form action is now pointing
                                to this same file, so that when you submit your form,
                                it goes back to this same file.
                                Also, I gave your select tag a "name" attribute so
                                that when you submit it, it'll actually be accessible
                                in the $_POST['option'] variable 
                                -->
                                <FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
                                    <SELECT name="option" onload="displayProject(this.value);" onchange="displayProject(this.value);">
                                        <OPTION VALUE='all'>ALL</OPTION>
                                        <OPTION VALUE='sciplay'>Sciplay</OPTION>
                                        <OPTION VALUE='oklahoma'>Oklahoma</OPTION>
                                        <OPTION VALUE='northdakota'>North Dakota</OPTION>
                                        <OPTION VALUE='audit'>Audit SSAE16</OPTION>
                                        <OPTION VALUE='sggaming'>SG Gaming</OPTION>
                                    </SELECT>
                                    <input type="submit" value="Reload Form">
                                </FORM>
                            </TD>
                        </TR>
    
                    </TABLE>
                </TD>
            </TR>
    
            <TR>
                <TD>
                    <!-- a <p> tag can't technically hold a <table> tag, but one thing at a time here -->
                    <p id="demo">
                        <?php
                        // I'm just lifting your structure out and placing it here for clarity purposes.
                        // really, you can just write these tags out in HTML directly,
                        // not go into PHP and echo them
                        echo "<table border='1'>
                            <tr>
                                <th>Project</th>
                                <th>Subject</th>
                                <th>Status</th>
                            </tr>";
    
                        while($row = mysqli_fetch_array($result))
                        {
                            echo "<tr>";
                            echo "<td>" . $row['project'] . "</td>";
                            echo "<td>" . $row['subject'] . "</td>";
                            echo "<td>" . $row['entry'] . "</td>";
                            echo "</tr>";
                        }
                        echo "</table>";
                        ?>
                    </p>
                </TD>
            </TR>
    
            </TABLE>
    
        </div>
    </body>
    
    <head>
        <title>Status Dashboard</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
    </head>
    
    $.ajax({
        url: 'getprojectstatus.php',
        type: 'post',
        data: 'option='+option,
        success: function(data) {
            $('#demo').html(data);
        }
    });