如何获取数组而不是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"); 
} 
?> 

我上面所示的API,但作为JSON对象不是JSON数组此API返回我吗?我想知道如何获得dotorid的doctorname作为一个阵列,因为我有很多的医生姓名和身份证,我想每名医生及其相应的ID作为idividual阵列,现在他们正在返回它们作为单个对象。由于这是我第一次编写api,我不知道如何修改代码。如何获取数组而不是json对象?

+3

每当你使用一个建议[了'mysql_'(http://*.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in -php) 新代码中的数据库扩展 ** [发生这种情况](https://media.giphy.com/media/kg9t6wEQKV7u8/giphy.gif)** 它被弃用并且已经使用了多年,曾经在PHP7中。 如果你刚开始学习PHP,花你的精力学习'PDO'或'mysqli'数据库扩展和准备的语句。 [从这里开始](http://php.net/manual/en/book.pdo.php) – RiggsFolly

+0

添加到上面的评论,你可以通过'json_decode JSON对象转换为数组($ yourjsonobjectvariable,真);' –

+0

谢谢对于有价值的信息,我这样做的一个项目,因此本质时间....所以有一些参考我了解到这种方式......因此我需要知道如何修改代码... – nithinsampath

你每轮循环在写阵列。

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

您应该使用mysqli_或PDO。下面是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"); 
} 
?> 
+0

三江源您宝贵的代码......感激....再次三江源@RiggsFolly – nithinsampath