我目前正在创建一个非常基本的网页来测试数据库。我在网络开发方面非常非常新,所以请耐心等待。我试图将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>
答案 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;
}