Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 HTML页面中MySQL的下拉列表_Php_Html_Drop Down Menu - Fatal编程技术网

Php HTML页面中MySQL的下拉列表

Php HTML页面中MySQL的下拉列表,php,html,drop-down-menu,Php,Html,Drop Down Menu,我试图把从mysql生成的下拉列表放在html页面中,问题是这段代码在php页面中运行良好,但在html页面中没有,我已经把它放在php标签中,但没有显示任何内容,我将感谢任何帮助 这是我的密码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/

我试图把从mysql生成的下拉列表放在html页面中,问题是这段代码在php页面中运行良好,但在html页面中没有,我已经把它放在php标签中,但没有显示任何内容,我将感谢任何帮助 这是我的密码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>Add Qustions</title>
 </head>
 <body>
  <form action="saveQ.php" method="post" >

  <br />
  <?php   $connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
  if (!$connectdb)
  {
      die('Could not connect :'. mysql_errno());
  }
  $selestdb  = mysql_select_db('iexa', $connectdb) or die ("not selected database");
   $qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
    echo "Choose the course that you want to create the test for : <br /> ";
    echo " <select name='courseID' >Course</option>";
    echo "<option value=0>Course </option>";
     $curvalue=2;
    while  ($row = mysql_fetch_assoc($qu)){
    echo '<option value="' .$row[ID].'">' .$row[ID].' ' .$row[Name].'</option>';
    $curvalue = $curvalue+1;
     }
     echo "</select> "; ?>
     <br />
      /// some other unrelated code here 
    <input type="submit" value="Save Question" />
    </form>

    </body>
    </html>

添加问题


///这里还有一些不相关的代码
可能是因为您这样做:

echo " <select name='courseID' >Course</option>";
echo“课程”;
将其更改为:

echo "<select name='courseID'>";
echo”“;

我个人不喜欢在PHP中呼应html,所以我使用这种方法,在任何情况下,您的问题都是基于html而不是基于PHP的

查询数据库的PHP模型示例: 另请注意
不将DOM与服务器端代码混合是公认的最佳实践。IE您应该将while语句和select框放在一个单独的php视图文件中,该文件可以遍历对象,而不是使用
echo
。这样,服务器处理更少,客户端处理更多。

我认为这个脚本就是您想要做的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Add Qustions</title>
</head>
<body>
    <form action="saveQ.php" method="post">
        <br />
        <?php  
            $connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
            if (!$connectdb) die('Could not connect :'. mysql_errno());

            echo "          Choose the course that you want to create the test for: <br />
            <select name=\"courseID\">
                <option value=\"0\">Course </option>\n";

            $selestdb  = mysql_select_db('iexa', $connectdb) or die ("not selected database");
            $qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
            while ($row = mysql_fetch_assoc($qu))
                echo "              <option value=\"{$row["ID"]}\">{$row["ID"]} {$row["Name"]}</option>\n";

            echo "          </select> ";
        ?>
        <br />
        <!-- some other unrelated code here -->
        <input type="submit" value="Save Question" />
    </form>
</body>
</html>

添加问题



脚本名称应以PHP扩展名结尾,如.PHP或.phtml。

不确定“此代码在PHP页面中工作正常,但在html页面中不工作”是什么意思。对于大多数服务器,通常的默认设置是,任何包含PHP代码的脚本都必须具有有效的PHP扩展名,例如.PHP或.phtml.PHP在HTML中不起作用,但HTML在PHP中起作用。这似乎也错了……您是指
课程
?@Travesty3,以防您跳过代码,OP在下一个语句中有和
echo
。好的,这很好,但是在您的示例中
课程
有什么意义呢?哦!我完全没有看到。我想现在是晚安时间了。:)示例代码已经过udpated,从“查看文件”中删除
mysql\u fetch\u assoc
,并将数组传递到foreach循环,而不是使用while。事实上,它看起来根本不像使用
$curvalue
。您可以完全删除它。当然,使用MVC这样的代码结构也不错,但在我看来,这似乎超出了这个问题的范围。看起来您只从数据库中获取了一行。对mysql\u fetch\u assoc的一次调用从数据库中获取一行,并将其存储在关联数组中,每个条目表示单个行中的一列。因此while循环的要点是不断地获取行,直到没有更多的行可获取。因此,您的
foreach
循环正在一行的列中循环。是的,将来自CI的ActiveRecord与旧式基础php stuf混淆了。。我重新更新了它。我在CodeIgniter或FuelPHP中完成了我的大部分数据库工作,它为您迭代并提供了返回的所有行的数组。。忘记
mysql\u fetch\u assoc()
不会在开箱即用的情况下执行此操作,在这种情况下,您之前的注释为true$curvalue是无用的。
<p>Choose the course that you want to create the test for:</p><br />
<select name="courseID">
    <option value="0">0 Course</option>
    <option value="1">1 Course</option>
  <?php while( $row = mysql_fetch_assoc($qu) ): ?>
    <option value="<?= $row['ID']; ?>"><?php echo $row['ID'].' '.$row['Name']; ?></option>
  <?php endwhile; ?>
</select>
<?php
  while  ($row = mysql_fetch_assoc($qu)){
  <select name="courseID">
  <option value="<?= $row['ID']; ?>"><?php echo $row['ID'].' '.$row['Name']; ?></option>
  </select>
   $curvalue++;
 }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Add Qustions</title>
</head>
<body>
    <form action="saveQ.php" method="post">
        <br />
        <?php  
            $connectdb = mysql_connect('localhost','root','sara') or die ("Not Connect");
            if (!$connectdb) die('Could not connect :'. mysql_errno());

            echo "          Choose the course that you want to create the test for: <br />
            <select name=\"courseID\">
                <option value=\"0\">Course </option>\n";

            $selestdb  = mysql_select_db('iexa', $connectdb) or die ("not selected database");
            $qu = mysql_query("SELECT ID,Name FROM Course ORDER BY ID asc") or die ("mysql error");
            while ($row = mysql_fetch_assoc($qu))
                echo "              <option value=\"{$row["ID"]}\">{$row["ID"]} {$row["Name"]}</option>\n";

            echo "          </select> ";
        ?>
        <br />
        <!-- some other unrelated code here -->
        <input type="submit" value="Save Question" />
    </form>
</body>
</html>