我已经在网上寻找解决我问题的方法好几个小时但无济于事。
我有多个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));
}
谢谢。
答案 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;
}
然后你会得到一个包含你想要的结果的数组