如何在此代码中返回数组的值?

时间:2013-07-30 12:29:31

标签: php mysql

我是新手。我想获取我在数组中设置的数组值。 我这里有这个简单的代码。希望有人可以帮助我。设置这个的正确方法是什么?

<?php
include('datacon.php');
//$id = $_GET['id'];

$list = mysql_query("SELECT PatientID,Fname,Mname,Lname 
         FROM tbl_PatientInfo WHERE PatientID = '1' ");

$result = array();
foreach( mysql_fetch_array($list) as $row){
$result[] = array(

'id' => $row['PatientID'],
'fname' => $row['Fname'],
'mname' => $row['Mname'],
'lname' => $row['Lname']

    );
 }

 echo json_encode($result);

 ?>

当我尝试这段代码时。它说错误: 警告:第15行上的非法字符串偏移'PatientID'

5 个答案:

答案 0 :(得分:2)

此行不正确:

foreach( mysql_fetch_array($list) as $row){

这只检索一行,然后迭代该行中的列。列只是字符串,而不是数组,这就是为什么你会得到非法的字符串偏移错误。

您想要检索每一行,您可以使用:

while ($row = mysql_fetch_array($list)) {

答案 1 :(得分:0)

你没有得到一个关联数组,这就是使用它的原因:

mysql_fetch_assoc($list) as $row

而不是

mysql_fetch_array($list) as $row

答案 2 :(得分:0)

使用mysql_fetch_assoc因为输出中不需要数字索引,所以mysql_fetch_array有点开销。

$result = array();
while( ($row = mysql_fetch_assoc( $list ) ) !== false ) {
  $result[] = array(
    'id' => $row['PatientID'],
    'fname' => $row['Fname'],
    'mname' => $row['Mname'],
    'lname' => $row['Lname']
  );
 }

答案 3 :(得分:0)

fetch_array() : $row[0], $row[1], etc...

fetch_assoc() : $row['PatientID'], $row['Fname'], etc...

fetch_object() : $row->PatientID, $row->Fname, etc...

答案 4 :(得分:0)

<?php
include('datacon.php');
//$id = $_GET['id'];

$list = mysql_query("SELECT PatientID,Fname,Mname,Lname 
         FROM tbl_PatientInfo WHERE PatientID = '1' ");

$result = array();
$i=0;
while( $row=mysql_fetch_array($list)){


$result[$i]['id'] = $row['PatientID'];
$result[$i]['fname'] = $row['Fname'];
$result[$i]['mname'] = $row['Mname'];
$result[$i]['lname'] = $row['Lname'];

    $i++;
 }

 echo json_encode($result);

 ?>