dpy83214 2017-07-16 16:53
浏览 45
已采纳

如何获取数组而不是json对象?

<?php 

$link = mysql_connect('localhost', 'root', 'admin')
or die('There was a problem connecting to the database.');
mysql_select_db('hospitalmaster');

$hnum = (int)$_POST["hnum"];
$sql = "SELECT d.doctorid, d.doctorname 
        from hospitalmaster.doctor_master d 
            inner join pharmacymaster.pharbill e 
        where e.hnum = '$hnum' 
        and e.presid = d.d_empno 
        group by e.presid";

$result = mysql_query($sql);
$response = array();

if (mysql_num_rows($result) > 0) {
    while ($row = mysql_fetch_assoc($result)) {
        $response = $row;
    }

    echo json_encode(array("Doctor"=>$response));
} else {
    echo ("no DATA");
}
?>

i have the api shown above, but this api is returning me as json objects not an json array? i would like to know how to get dotorid an doctorname as a array, since i have many doctor names and id, i want each doctor and their corresponding id as an idividual array, right now they are returning as individual objects. Since this is my first time writing an api, i dont know how to modify the code.

  • 写回答

1条回答 默认 最新

  • dousao6260 2017-07-16 16:56
    关注

    You are over writing the array each time round the loop.

    while ($row = mysql_fetch_assoc($result)) {
        $response[] = $row;
        //change ^^
    }
    

    You should use either mysqli_ or PDO. Here is a suggestion for mysqli_

    <?php 
    
    $link = mysqli_connect('localhost', 'root', 'admin','hospitalmaster')
    or die('There was a problem connecting to the database.');
    
    $sql = "SELECT d.doctorid, d.doctorname 
            from hospitalmaster.doctor_master d 
                inner join pharmacymaster.pharbill e 
            where e.hnum = ?
            and e.presid = d.d_empno 
            group by e.presid";
    
    $stmt = $link->prepare($sql);
    $stmt->bind_param('i', (int)$_POST["hnum"]);
    $stmt->execute();
    
    if ($stmt->num_rows() > 0) {
        $result = $stmt->get_result();
        $response = array();
    
        while ($row = $result->fetch_assoc()) {
            $response[] = $row;
        }
    
        echo json_encode(array("Doctor"=>$response));
    } else {
        echo ("no DATA");
    }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵