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

 ?>

このコードを試すと。それはエラーを言いました: 警告: 不正な文字列オフセット 'PatientID' on line 15

4

5 に答える 5

2

この行は正しくありません:

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

これは、1 行だけを取得し、その行の列を反復処理しています。列は単なる文字列であり、配列ではないため、無効な文字列オフセット エラーが発生します。

各行を取得したい場合は、次のようにします。

while ($row = mysql_fetch_array($list)) {
于 2013-07-30T12:37:09.343 に答える
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 に答える
0

連想配列を取得していないため、使用が無効です。

mysql_fetch_assoc($list) as $row

それよりも

mysql_fetch_array($list) as $row
于 2013-07-30T12:34:29.780 に答える
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']
  );
 }
于 2013-07-30T12:34:33.187 に答える