【问题标题】:Multiple Mysqli Select Statement, echo separated results多个 Mysqli Select 语句,回显分离的结果
【发布时间】:2014-02-04 04:00:49
【问题描述】:

我已经在网上寻找解决问题的方法数小时无济于事。

我有多个 selct 语句,从不同的 mysql 表接收数据。 我想回显完全分离的结果。目前,打印结果就像它们是一个一样, 所以我不能单独处理答案。

假设表格的输出是:

100
200
300
400

我要回声:

result1 = 100;
result2 = 200;

所以我可以在另一个程序中处理最终结果。如果结果为空,则不应产生错误, 但只是发布0。 例如,如果 mysql 表的输出是:

100
null
null
100

我希望输出清楚地显示

result1 = 100;
result2 = 0;
result3 = 0;
result4 = 100;

等等

$check_sco = 100;

$sql = "SELECT TABLE_1 FROM RIDER_1 WHERE score1=$check_sco;";
$sql .= "SELECT TABLE_1 FROM RIDER_2 WHERE score1=$check_sco;";
$sql .= "SELECT TABLE_1 FROM RIDER_3 WHERE score1=$check_sco;";
$sql .= "SELECT TABLE_1 FROM RIDER_4 WHERE score1=$check_sco";


if (mysqli_multi_query($con,$sql)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($con)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);//how to echo separated result that can be manipulated indepedently?
        }
        mysqli_free_result($result);
    }

} while (mysqli_next_result($con));

}

谢谢。

【问题讨论】:

    标签: php select mysqli


    【解决方案1】:

    为什么不按顺序运行它们?

    $check_sco = 100;
    
    $riders = array();
    for($i=1; $i<=4; $i++) {
        $sql = "SELECT TABLE_1 FROM RIDER_" . $i . " WHERE score1=" . $check_sco;
        $result = mysqli_query($con, $sql);
        $row = $result->fetch_assoc();
        $riders[] = ($row['TABLE_1']) ? $row['TABLE_1'] : 0;
    }
    

    然后你会得到一个包含你想要的结果的数组

    【讨论】:

      【解决方案2】:

      你需要使用IFNULL,如果 TABLE_1 不为空,它将返回 TABLE_1,否则它会给你 0

      SELECT IFNULL(TABLE_1, 0) FROM RIDER_1 WHERE score1=$check_sco;
      SELECT IFNULL(TABLE_1, 0) FROM RIDER_2 WHERE score1=$check_sco;
      SELECT IFNULL(TABLE_1, 0) FROM RIDER_3 WHERE score1=$check_sco;
      SELECT IFNULL(TABLE_1, 0) FROM RIDER_4 WHERE score1=$check_sco
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 2012-05-19
        相关资源
        最近更新 更多