PHP中未定义的数组索引错误

时间:2014-01-28 00:47:10

标签: php

大家好,我对这个非常简单的代码有一些奇怪的问题:

    if($_GET['task'] == 'dropMenu') dropMenus($_GET['id'], $_GET['val']);

    function dropMenus($elemId, $elemValue){
    global $pdo;


    switch($elemId){
      case 'bank':
      $dbTable = 'bank';
      $cellName = 'bankname';
      break;

    case 'tipe':
      $dbTable = 'cardtype';
      $cellName = 'type';
      break;

    case 'holder':
      $dbTable = 'cardholder';
      $cellName = 'holdername';
      break;

    }//end switch()


    $result = $pdo->query('select * from bank '.$dbTable);

    foreach($result as $row){
       $dbArray[] = array('id' => $row['id'], 'name' => $row[$cellName]);
    }//end foreach
    }//end dropMenus

如果$elemId = 'bank'一切正常,但如果$elemId = 'tipe'由于某种原因我收到此消息:

  

注意:未定义索引:在C:\ xampp \ htdocs \ financeStat \ cards \ cardsImprove \ cards.php中输入行($ dbArray [] = array('id'=> $ row ['的行) id'],'name'=> $ row [$ cellName]))

消息是

$elemId = 'holder'

  

注意:未定义的索引:holdername在C:\ xampp \ htdocs \ financeStat \ cards \ cardsImprove \ cards.php中行($ dbArray [] = array('id'=> $ row ['的行) id'],'name'=> $ row [$ cellName]))

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

db结果中没有typeholdername个字段。那是你的错误所说的。检查数据库结果。

答案 1 :(得分:0)

问题在于$row不包含字段typecardholder这一事实。我会通过执行以下操作来检查数据库请求的输出:

 $result = $pdo->query('select * from'.$dbTable);

这将显示$row变量的确切含义。