多个Mysqli Select语句,回显分离结果

时间:2014-02-04 04:00:50

标签: php select mysqli

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

我有多个selct语句,从不同的mysql表接收数据。 我希望回应完全分开的结果。目前,结果打印好像是一个, 所以我不能单独处理答案。

假设表的输出为:

100
200
300
400

我想回应一下:

result1 = 100;
result2 = 200;

所以我可以在另一个程序中完成最终结果。如果结果为null,则不应产生错误, 但只是发布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));

}

谢谢。

2 个答案:

答案 0 :(得分:0)

你需要使用IFNULL如果TABLE_1不为null,它将返回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

答案 1 :(得分:0)

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

$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;
}

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