嵌入PHP时HTML标记不起作用

时间:2019-04-04 08:58:58

标签: php html while-loop

我的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>

3 个答案:

答案 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);
}