嵌入式PHP在HTML中提前结束?

时间:2011-05-25 20:13:38

标签: php html drop-down-menu

我目前正在创建一个非常基本的网页来测试数据库。我在网络开发方面非常非常新,所以请耐心等待。我试图将php嵌入到html中,以便从数据库中动态填充带有大学列表的下拉菜单。但是,一旦我将源代码上传到服务器,查看源代码,嵌入式PHP代码正在被正确读取...它正在解释“>”在if语句中我必须结束php,而不是等待“?>”。我该如何解决这个问题?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en"> 
 <head> 
  <title>Search</title> 
 </head> 
 <h>Search for your university
 <body> 
    <?php
    //connection to db stuff

    $sql        = "SELECT campus FROM universities";  
    $query      = mysql_query($sql); 
    $options    = "";
    if (mysql_num_rows($query) > 0)  //php code cuts off at ">" and simply prints the rest
    {
        while($row = mysql_fetch_array($query)) 
        {
            $options .= "<option>" . $row['campus'] . "</option>";
        }
    }
?>
//form stuff
 </body> 
</html>

6 个答案:

答案 0 :(得分:2)

很简单,您的文件扩展名可能是.html或其他。

将文件重命名为.php扩展名,以便PHP解释程序知道发生了什么。否则,您的Web服务器将为该页面提供服务,就像所有内容都是html一样。

答案 1 :(得分:2)

您还可以尝试以下代码并将其另存为.php(例如index.php)文件

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en"> 
  <head> 
    <title>Search</title> 
  </head>
  <body>
  <h1>Search for your university</h1>

  <?php
  //connection to db stuff

  $sql        = "SELECT campus FROM universities";  
  $query      = mysql_query($sql); 
  $options    = "";
  if (mysql_num_rows($query) > 0)  //php code cuts off at ">" and simply prints the rest
  {
    while($row = mysql_fetch_array($query)) 
    {
        $options .= "<option>" . $row['campus'] . "</option>";
    }
    // Show the dynamicly created options
    echo $options;
  }
  ?>
  //form stuff
  </body> 
</html>

我为你的BODY标签添加了修复程序。它被添加到错误的地方,并修复了标签。那个人不完整。

将.php文件保存到服务器上以将其解析为PHP是不必要的,但建议这样做,并且对其他程序员来说更容易理解。

答案 2 :(得分:1)

实际上听起来是你的PHP解释器根本没有触及代码......如果你查看源代码,你会看到代码。

<?php被视为HTML标记的开头,以>条件中的if结尾。

你需要纠正你的PHP安装,以便在你有一个像这样的测试.php文件时它可以工作:

<?php phpinfo(); ?>

这应返回一个包含PHP安装所有信息的大描述页面。在您完成这项工作之前,您需要开始排除PHP安装无法正常工作的原因。

答案 3 :(得分:0)

这样的问题表明你安装PHP时会有一个拥抱的问题。它应该只在遇到?>时终止PHP块。如果>会这样做,您将无法进行“大于”比较。

尝试删除一些内容,例如if()部分,只留下while循环,看看是否有任何改变。

答案 4 :(得分:0)

查看源代码,你会看到你所有的PHP代码。

服务器中的php根本没有运行,检查你的配置。

答案 5 :(得分:0)

阅读您的故事我理解您将页面加载到服务器上。所以我怀疑你的PHP处理程序运行良好。但是,要在页面上显示PHP输出,您需要回显$ options变量。在while循环后尝试以下

 if (mysql_num_rows($query) > 0)  //php code cuts off at ">" and simply prints the rest
{
    while($row = mysql_fetch_array($query)) 
    {
        $options .= "<option>" . $row['campus'] . "</option>";
    }
    // Show the dynamicly created options
    echo $options;
}