我的HTML标签运行良好,但是当其中嵌入PHP代码时,PHP代码之后的标签未显示
PHP代码从MySQL数据库中获取了一些数据,以便在select标记中显示为选项。
<div class="linetxt"><!--Trainer Name-->
<label for="trainee_name">Trainer Name</label>
<span class="input">
<select name="trainerName" id="">
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
while($row = mysqli_fetch_assoc(mysqli_query($con, "SELECT trainer_name ,trainer_id FROM trainer"))){
echo '<option value="'.$row['trainer_id'].'">'.$row['trainer_name'].'</option>';
}
?>
</select>
</span>
</div>
答案 0 :(得分:1)
首先尝试将查询放在while
之前
并且您必须获取while
内部的所有信息。
我不知道您是如何创建数据库的,但是如果要获取每个数据行,这是一种更好的方法:
示例:
(调用数据库)
$req = $bdd->("SELECT * FROM table");
while($r = $req->fetch()){
echo $r["name"];
}
答案 1 :(得分:0)
代码(A)有很多问题,(B)您的问题没有得到很好的表达,您似乎并没有为自己调查问题(C)付出任何努力。
A涉及多个方面-除了B&C,您可能还希望访问codereview.stackexchange以获取有关如何编写可靠代码的指针。
关于B:此处的代码段省略了使之正常工作所需的重要PHP指令-建议包括minimal, complete and verifiable代码清单,以说明您的问题。
C:当您尝试捕获错误时,PHP会通过更改代码中的配置来发出错误消息-并且,如果您获得一些html输出,则表明PHP代码可以解析,但稍后会遇到错误。您没有提及PHP代码的之后内容是否显示在输出中(也许您的查询未找到任何数据)。
您应该验证错误日志是否按预期工作(通过测试),以及代码是否在日志中写入了任何错误。
当与PHP外部的服务(例如DBMS)集成时,可能会发生一些非PHP错误的事情。此类集成的扩展将具有在返回码中报告状态的接口(您不检查mysqli函数返回的值),以及到retrieve any specific error messages的接口,应在代码中进行轮询。
每次循环迭代时,您都在运行一个新查询-因此您看不到任何输出的原因是代码仍在运行(并且将继续执行,直到实例内存不足或时间不足为止)。
答案 2 :(得分:0)
尝试使用
$sql= "SELECT trainer_name ,trainer_id FROM trainer";
$result = mysqli_query($con,$sql);
$xxxx = mysqli_fetch_array($result);
foreach ($xxxx as $row)
{
var_dump($row);
}