我的 PHP 代码现在遇到了一些问题。首先,我有一个 MySQL 数据库,其中存储了一些数据,我正在检索该数据并使用 PHP 将其显示在页面上。这是代码,以便我可以更好地描述我的问题:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "my_database";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM sample";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<span class='infoTitle'>Now:</span>".$row["now"]."<br>".
"<span class='infoTitle'>Status:</span> ".$row["status"]."<br>";
if (trim($row["now"] == 1)) {echo "Yes";} if(trim($row["now"] == 0)) {echo "";}
if ($row["status"] == 3) {echo "Open";} if($row["status"] == 2) {echo "Closed";}
}
}
else {
echo '<h2 class="noInfo">Whoops! Looks like there is currently no information available.</h2>';
}
$conn->close();
?>
所以我遇到的问题是条件语句。我在 php 页面中隐藏了输入,该信息来自该页面,它将把隐藏字段的值输入到 MySQL 中。所以我的浏览器中当前显示的代码是这样的:
Now: 1
Status: 3
YesOpen
但我想让它做的是这个
Now: Yes
Status: Open
最佳答案
您的代码中几乎没有错误:
trim($row["now"] == 1)
- 应该是trim($row["now"]) == 1
等等(否则您对 bool 值执行修剪,因为将首先评估$row["now"] == 1
)echo
在循环开始时被调用,然后检查并显示“status”和“now”,它对第一次回显没有影响,因为在下一次迭代中会读取新行并将未格式化的值放入“第一个回显”
只需将 while 循环更改为类似的内容即可:
while ($row = $result->fetch_assoc()) {
if (intval($row["now"]) == 1) {
$now = "Yes";
} else {
$now = "";
}
if ($row["status"] == 3) {
$status = "Open";
} else if($row["status"] == 2) {
$status = "Closed";
} else {
$status = '';
}
echo "<span class='infoTitle'>Now:</span>".$now."<br><span class='infoTitle'>Status:</span> ".$status."<br>";
}
那就应该没问题了。
关于php - 如何使用 PHP 回显具有条件语句的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494264/