我是新手。我想获取我在数组中设置的数组值。 我这里有这个简单的代码。希望有人可以帮助我。设置这个的正确方法是什么?
<?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'
答案 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);
?>