我不明白我这是怎么回事。我希望计数器只显示何时付款状态(在数据库中的列是payment_status)显示免费或完成,如果列名称,宋,和乐队有一些填充(不是空白)。下面是我的代码,但是即使payment_status为null,它也在计算条目。任何帮助都是非常感谢的。
我所做的事情:除了搜索我能找到的任何地方,我试图取出,重新排列,并改变不同的值在每一行为空和NULLIF部分。
这是我的密码
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT id, name, band, song, extra, band2, song2, extra2, band3,
song3, extra3, item_name, payment_status
FROM nametable";
$result = $conn->query($sql);
$resultt = mysqli_query($conn, "select COUNT( NULLIF( song, '' ) ) +
COUNT( NULLIF( song2, '' ) ) +
COUNT( NULLIF( song3, '' ) ) AS count
FROM `nametable` ");
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
if( $row['payment_status'] == "Completed" ||
$row['payment_status'] == "Free")
{
if( !empty($row["name"]) &&
!empty($row["band"]) &&
!empty($row["song"]) )
{
if(!$result) {
die('Error: ' . mysqli_error($link));
} else {
$num_rows = mysqli_fetch_assoc($resultt);
// echo it
echo "<font color='aqua'>" . $num_rows['count']."</font>";
}
}
}
}
} else {
echo " ";
}
$conn->close();
?> 发布于 2022-01-06 17:22:16
您可以直接从db中获得结果。
select COUNT( NULLIF( song, '' ) ) +
COUNT( NULLIF( song2, '' ) ) +
COUNT( NULLIF( song3, '' ) ) AS count
FROM `nametable`
WHERE payment_status IN ('FREE ', 'COMPLETED')
AND concat(ifnull(Name,''), ifnull(Song,''), ifnull(Band ,'')) != ''https://stackoverflow.com/questions/70610791
复制相似问题