0

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

<?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);

 ?>

当我尝试这段代码时。它说一个错误:Warning: Illegal string offset 'PatientID' on line 15

4

5 回答 5

2

此行不正确:

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

这只是检索一行,然后遍历该行中的列。这些列只是字符串,而不是数组,这就是为什么会出现非法字符串偏移错误。

你想检索每一行,你这样做:

while ($row = mysql_fetch_array($list)) {
于 2013-07-30T12:37:09.343 回答
0

您没有得到关联数组,这就是使用无效的原因:

mysql_fetch_assoc($list) as $row

而不是

mysql_fetch_array($list) as $row
于 2013-07-30T12:34:29.780 回答
0

在输出中使用mysql_fetch_assocas 不需要数字索引,因此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']
  );
 }
于 2013-07-30T12:34:33.187 回答
0
fetch_array() : $row[0], $row[1], etc...

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

fetch_object() : $row->PatientID, $row->Fname, etc...
于 2013-07-30T12:35:00.090 回答
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);

 ?>
于 2013-07-30T12:39:40.057 回答