我在while循环内部的IF STATEMENT中显示信息时遇到了麻烦。甚至可以在while循环中回显if语句吗?请帮忙!
此代码
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "databasename";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
$searchEscaped = $conn->real_escape_string($_GET['username']);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users WHERE username = '$searchEscaped' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "
**if(!empty($row['image2'])) {
<a class='example-image-link' href='pictures/".$row['image2']."' data-lightbox='example-set'><img class='example-image'src='pictures/".$row['image2']."' alt='Profile Pic'></a>
}
";}
} else {
echo "No users found";
}
$conn->close();
?>
答案 0 :(得分:3)
我认为你需要将if语句中的echo移动到只有符合要求的回声:
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "databasename";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
$searchEscaped = $conn->real_escape_string($_GET['username']);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM users WHERE username = '$searchEscaped' ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while ($row = $result->fetch_assoc()) {
if (!empty($row['image2'])) {
echo "
<a class='example-image-link' href='pictures/" . $row['image2'] . "' data-lightbox='example-set'><img class='example-image'src='pictures/" . $row['image2'] . "' alt='Profile Pic'></a>
";
}
}
} else {
echo "No users found";
}
$conn->close();
?>
以下是一个可在整个脚本中使用的函数示例:
function print_image($row_image){
if(!empty($row_image)){
return "
<a class='example-image-link' href='pictures/" . $row_image . "' data-lightbox='example-set'><img class='example-image'src='pictures/" . $row_image . "' alt='Profile Pic'></a>
";
}
else{
return "";
}
}
您可以在脚本中的任何其他位置调用此函数,并执行以下操作:
echo print_image($row['image2']);
或
echo print_image($row['image3']);
答案 1 :(得分:3)
if语句出现在echo,if语句echo。
之前if ($result->num_rows > 0)
{
// output data of each row
while($row = $result->fetch_assoc())
{
if( ! empty( $row['image2'] ) )
{
echo '<a class="example-image-link" href="pictures/' . $row['image2'] . '" data-lightbox="example-set"><img class="example-image" src="pictures/' . $row['image2']. '" alt="Profile Pic"></a>';
}
}
}