【问题标题】:Multiple mysqli select with json使用 json 选择多个 mysqli
【发布时间】:2014-08-03 15:08:27
【问题描述】:
<?php
include"../database_conn.php";
$con=mysqli_connect("localhost","admin","123456","ayurveadic");

$query_pag_data = "SELECT id from diseases";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());

while ($row = mysql_fetch_array($result_pag_data)) {
    $diseases_id = $row['id'];

    $result = mysqli_query($con,"SELECT $diseases_id FROM treatment WHERE gender_id = '10' AND diseases_id = '$diseases_id'");
    $row_gid = mysqli_fetch_array($result);
    if ($row_gid == TRUE){

        $sl_dise = mysqli_query($con,"SELECT Diseases_type, id FROM diseases WHERE id = '$diseases_id'");

        $rowss = array();
        while($r = mysqli_fetch_assoc($sl_dise)) {
            $rowss[] = $r;
        }
        print json_encode($rowss);
    }
}

输出是:

[{"Diseases_type":"fever","id":"114"}][{"Diseases_type":"rhrh","id":"123"}]

我怎样才能得到这个输出:

[{"Diseases_type":"fever","id":"114"},{"Diseases_type":"rhrh","id":"123"}]

【问题讨论】:

标签: php mysql json select


【解决方案1】:

把你的

print json_encode($rowss);

结束后while ($row = mysql_fetch_array($result_pag_data)) {

也去掉这个$rowss = array();数组初始化

【讨论】:

  • 这不是他需要改变的全部,因为他每次循环都在重新初始化$rowss
【解决方案2】:

这是你优化的代码

<?php
include"../database_conn.php";
$con=mysqli_connect("localhost","admin","123456","ayurveadic");

 $query_pag_data = "select diseases.Diseases_type,diseases.id from diseases inner join treatment on treatment.diseases_id = diseases.id where treatment.gender_id = '10' ";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());

$rowss = array();
while ($row = mysqli_fetch_assoc($result_pag_data)) {
    $rowss[] = $row;
}
print json_encode($rowss);
?>

【讨论】:

  • 为什么将SELECT Diseases_type, id 替换为SELECT *?我们应该鼓励人们选择特定的列。
  • @Barmar 好的。同意并更新代码。但为什么要投反对票?
  • 我没有投反对票。我最初投了赞成票,然后撤消了它,直到你解决了这个问题。
【解决方案3】:

您需要在外循环之前初始化 JSON 数组,并在最后打印它,而不是每次都打印。

<?php
include"../database_conn.php";
$con=mysqli_connect("localhost","admin","123456","ayurveadic");

$query_pag_data = "SELECT id from diseases";
$result_pag_data = mysql_query($query_pag_data) or die('MySql Error' . mysql_error());

$rowss = array();
while ($row = mysql_fetch_array($result_pag_data)) {
    $diseases_id = $row['id'];

    $result = mysqli_query($con,"SELECT $diseases_id FROM treatment WHERE gender_id = '10' AND diseases_id = '$diseases_id'");
    $row_gid = mysqli_fetch_array($result);
    if ($row_gid == TRUE){

        $sl_dise = mysqli_query($con,"SELECT Diseases_type, id FROM diseases WHERE id = '$diseases_id'");

        while($r = mysqli_fetch_assoc($sl_dise)) {
            $rowss[] = $r;
        }
    }
}
print json_encode($rowss);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2014-09-23
    • 2015-10-26
    • 1970-01-01
    • 2018-08-27
    相关资源
    最近更新 更多