什么时候关闭php标记,这样它就不会与html集成


when to close the php tags so it doesnt intefere with the html

我正在尝试应用一个下拉菜单,从数据库中提取用户名。我有下面的代码。

<?php  
$host="******"; // Host name
$username="******"; // Mysql username
$password="*****"; // Mysql password
$db_name="*******"; // Database name
$cn=mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($db_name,$cn) or die(mysql_error());
$sql = "SELECT usernameSchool FROM schools";
$rs = mysql_query($sql) or die(mysql_error());
echo ?>"<select>";
  <?php  
while($row = mysql_fetch_array($rs)){
echo ?>"  <option value= <?php'".$row["usernameSchools"]."'?> >".$row["userameSchool"]."</option>";
}mysql_free_result($rs);
echo "</select>";
?>

当我尝试加载页面时,当我在开始和结束处有php打开和关闭标记时,一些php脚本开始显示。

当我从html切换到php时,我试图在代码中间放一些,但这现在导致了其他问题,例如数据库中的信息无法通过以及随机引号。我不确定我的语法哪里出了问题。

如果有人能告诉我什么时候打开和关闭这些标签,那将非常有帮助。

该数据所在的页面目前是html和php的混合体。

这是荒谬的UGLY代码:

echo ?>"<select>";
  <?php 

为什么不简单地拥有

echo "<select>";

就这样算了?没有必要像现在这样跳进/跳出PHP模式。你只是让代码变得非常难以遵循。

但使用其他语法会更漂亮:D

<?php  
$host="******"; // Host name
$username="******"; // Mysql username
$password="*****"; // Mysql password
$db_name="*******"; // Database name
$cn=mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($db_name,$cn) or die(mysql_error());
$sql = "SELECT usernameSchool FROM schools";
$rs = mysql_query($sql) or die(mysql_error());
?>
<select>
<?php  while($row = mysql_fetch_array($rs)):?>
        <option value='<?php echo $row["usernameSchools"];?>'>
             <?php echo $row["userameSchool"];?>
        </option>
<?php  endwhile;
      mysql_free_result($rs);
?>
</select>

此外,请停止使用新代码的mysql_扩展*使用MySQLi或PDO,因为mysql_扩展现在已被弃用且不安全。