首页 > 解决方案 > 值字段未接收 php 变量

问题描述

<?php
        $servername = "localhost";
        $username = "root";
        $password = '';
        $dbname = "db_code";
        $conn = new mysqli($servername, $username, $password, $dbname);
        $sql = "SELECT Otp FROM otptable";
        $result = $conn->query($sql);
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "Otp: " . $row["Otp"] ."<br>";
                x = " . $row["Otp"] .";
            }
        }
        ?>
        <body>
         <div id="floating-panel">
              <input id="latlng" type="text" value="<?php echo $row["otp"]?>">
        </body>

数据不在值字段中,而是在上面的回声中工作。如何插入价值?
我可以将 $row["otp"] 存储在一个变量中,然后在值标签中回显它。如果是,那怎么办?

标签: php

解决方案


因为您试图在循环之外$row使用它,所以到那时不包含任何有意义的东西。(根据定义$row必须到false那时,否则循环将永远不会结束。)

您可以将值存储在变量中以在循环后使用,例如:

$otp = "";
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $otp = $row["Otp"];
    }
}
<input id="latlng" type="text" value="<?php echo $otp; ?>">

当然,请注意,这将始终显示循环中的最后一个值。(此时循环本身是不必要的,您可以缩小查询范围以仅返回您想要的最后一行。)再次,这是因为这发生在循环之外,因此只发生一次循环之后.

相反,如果您想在页面上的多个元素中显示多个值,您更可能希望将这些元素放入循环中。例如:

while($row = $result->fetch_assoc()) {
?>
    <input id="latlng" type="text" value="<?php echo $row["Otp"]; ?>">
<?php
}

推荐阅读