如何根据相似id的特定列的值回显不同的字符串?

eblbsuwk  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(255)

我有一个名为“payment”的表,数据是:

id   client_id   month_id
1    99          10
2    99          11
3    99          12

现在在我的前端,我想显示如果客户端99有10个月的值_id回声'十月支付';如果有值11,则回显“11月支付”,并根据月份id的值与所有月份类似。
我怎样才能做到这一点?我试过这个:

<?php
    $sql = "SELECT * FROM payment WHERE client_id = 99";

    $result = $connect->query($sql);
    $data = $result->fetch_array();

    $mnthId = $data['month_id'];

    if ($mnthId = 11) {
        echo "November Paid";
    } else {
        echo "Unpaid";
    }
?>

但我总是得到第一排的结果,我是说10月工资。其他条件不起作用时。非常感谢您的帮助。短暂性脑缺血发作

unguejic

unguejic1#

我宁愿利用 Monthname()Str_to_Date() mysql的函数,直接从查询本身获取月份名称:

<?php
    $sql = "SELECT *, 
                   MONTHNAME(STR_TO_DATE(month_id, '%m')) AS month_name 
            FROM payment 
            WHERE client_id = 99";

    $result = $connect->query($sql);
    $data = $result->fetch_array();

    echo $data['month_name'] . " Paid";
?>

请参考以下答案:https://stackoverflow.com/a/53213448/2469308 更多细节。

iszxjhcz

iszxjhcz2#

你差点就成功了。我觉得这很管用。还没测试过,

<?php
    $conn = mysql_connect("localhost", "mysql_user", "mysql_password");    
    $sql = "SELECT * FROM payment WHERE client_id = 99";
    $result = mysql_query($sql);

    while ($row = mysql_fetch_assoc($result)) {
        if ($row['monthid']=="10") { echo "october paid"} 
    /* all months like this */
    }

相关问题