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

时间:2018-11-12 18:34:16

标签: php mysql

我有一个名为“付款”的表,数据为:

router.post('/user', function(req, res){
      var auth = {
          content-type: "application/json",
          username: "abcd",
          password: "xyze"
      }

      auth.post('/user', {username: req.body.username, password: req.body.password"}, function(response) {
             console.log(response);
      })

})

现在在我的前端,我想显示客户端99在month_id echo'October Paid'中是否有10个值;如果值为11,则回显“ November Paid”,并类似于所有月份,具体取决于month_id的值。

我该如何实现?我尝试过:

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

但是我总是得到第一行的结果,我的意思是十月付费。其他,如果条件不起作用。任何帮助深表感谢。 TIA

2 个答案:

答案 0 :(得分:1)

我宁愿将Monthname()与MySQL的Str_to_Date()功能一起使用,直接从查询本身获取月份名称:

<?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,以获取更多详细信息。

答案 1 :(得分:0)

您几乎拥有了它。我认为这可行。 Havent已对其进行测试,

<?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 */
    }