[英]Show count for only specific values
我不明白我在哪里出錯了。 我希望計數器僅在付款狀態(數據庫中的列是 payment_status)顯示 FREE 或 COMPLETED 時顯示,並且列名稱、歌曲和樂隊是否填寫了某些內容(不是空白)。 下面是我的代碼,但是即使 payment_status 是 null,它也會計算條目。 任何幫助表示贊賞。
我所做的:除了在我能找到的所有地方搜索之外,我還嘗試取出、重新排列和更改 Empty 和 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();
?>
您可以直接從 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 ,'')) != ''
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.