2014-05-08 51 views
1

我有下面的代码显示正确的结果对我来说,但不幸的是我不能将这些结果传递到我的HTML页面并返回一定的值。面对数组的瓶颈

这是我的SQL语句:

$stmt = "SELECT * FROM "._CONST_TBL_EVENT_COMMENT." WHERE event_id = $record"; 

if($rs = $db->Execute($stmt)) 
{ 
    while($rsa = $rs->FetchRow()) 
    { 

     array_push($arrResult, array(
      "id" => $record, 
      "name" => $alumni->getAlumniNameForEventComment($rsa['member_id']), 
      "file_path" => $alumni->getAlumniImageForEventComment($rsa['member_id']), 
      "content" => $rsa['text'], 
      "date" => $rsa['modified_timestamp'] 
     )); 
    } 
} 

这是结果我得到:

Array ([0] => 
     Array ([id] => 1 [name] => 
      Array ([0] => Array ([name] => alisdfsadf)) 
      [file_path] =>Array ([0]=> Array ([file_path] => hydrangeas_23197.jpg)) 
      [content] => test test test test 
      [date] => 2014-05-08 00:00:00) 
     [1] => 
     Array ([id] => 1 [name] => 
      Array ([0] => Array ([name] => billy)) 
      [file_path] => Array ([0] => Array ([file_path] =>)) 
      [content] => sdfasdfas test 
      [date] => 2014-05-22 00:00:00) 
) 

但我想这样我的结果显示:

Array ([0] => Array([id] => 1 [name] => alisdfsadf 
[file_path] => hydrangeas_23197.jpg 
[content] => test test test test 
[date] => 2014-05-08 00:00:00) 

如何我做这个?我希望有人能帮助我。先谢谢了。

+0

为什么'getAlumniNameForEventComment'和'getAlumniImageForEventComment'返回数组而不是字符串? – Barmar

回答

1

您在$ alumni类中的函数看起来是返回数组。 此基础上,你已经给了,并试图扭转工程师输出...

while($rsa = $rs->FetchRow()) 
{ 
    $allNamesArray = $alumni->getAlumniNameForEventComment($rsa['member_id']); 
    $firstNameArray = $allNamesArray[0]; 
    $name = $firstNameArray['name']; 

    // similar for file path. 

    array_push($arrResult, array(
     "id" => $record, 
     "name" => $name, 
     "file_path" => $alumni->getAlumniImageForEventComment($rsa['member_id']), 
     "content" => $rsa['text'], 
     "date" => $rsa['modified_timestamp'] 
    )); 
} 
+0

谢谢。有用。 – user3517652

+0

没问题,很高兴我能帮上忙。 – tomsowerby

1

由于getAlumniXXXForEventComment函数返回数组,你要索引他们得到你想要的字符串。

if($rs = $db->Execute($stmt)) 
{ 
    while($rsa = $rs->FetchRow()) 
    { 
     $nameArray = $alumni->getAlumniNameForEventComment($rsa['member_id']); 
     $name = is_array($nameArray) ? $nameArray[0]['name'] : $nameArray; 
     $fileArray = $alumni->getAlumniImageForEventComment($rsa['member_id']); 
     $file = is_array($fileArray) ? $fileArray[0]['file_path'] : $fileArray; 
     array_push($arrResult, array(
      "id" => $record, 
      "name" => $name, 
      "file_path" => $file, 
      "content" => $rsa['text'], 
      "date" => $rsa['modified_timestamp'] 
     )); 
    } 
+0

我得到偏移错误警告:非法字符串偏移'file_path'在C:\ xampp \ htdocs \ www.victorians93.com \ sharelibrary \ modules \ event \ Event.inc.php在线77 注意:未初始化的字符串偏移量:0在C:\ xampp \ htdocs \ www.victorians93.com \ sharelibrary \ modules \ event \ Event.inc.php上线77 警告:C:\ xampp \ htdocs \ www.victorians93中的非法字符串偏移量'file_path'。 com \ sharelibrary \ modules \ event \ Event.inc.php on line 77 注意:在C:\ xampp \ htdocs \ www.victorians93.com \ sharelibrary \ modules \ event \ Event.inc.php中未初始化的字符串偏移量为0在线77 – user3517652

+0

'getAlimniImageForEventComment'有时会返回一个字符串,而其他时间会返回一个数组?您显示的示例输出始终有一个数组。 – Barmar

+0

它没有任何返回 – user3517652