undefined index循环错误的无效参数

时间:2015-04-17 17:56:33

标签: php

请指出我在正确的方向我试图做以下事情:

  1. 为每个eventid生成多个选择框
  2. 用户选择他们认为会赢得每项赛事的人
  3. 每个selectBox的名称是分配给变量$ id
  4. 的事件ID
  5. 在while循环结束时,我想在For循环中提取数组$ id值,但是我得到错误" undefined offset&无效的论点"在我的for循环...
  6. 这是我的表格

    enter image description here

        $i=0;//counter
        while($row=mysql_fetch_array($result)){
    
        $team1 = $row['team1'];
        $team2 = $row['team2'];
        $id[$i]= $row['event_id']; 
    
        echo'<h3>'.$team1.' VS '.$team2.'</h3>';
        echo'<select name="'.$id[$i].'">';
                echo'<option value="'.$row['team1'].'">'.$team1.'</option>';
                echo'<option value="'.$row['team2'].'">'.$team2.'</option>';
                echo'</select>';    
            $i++;
        }//while
    

    这是我的for循环给出错误,我怀疑问题在于 $_POST['$id'] ...

    if(isset($_POST['submit'])){    
    
        foreach($_POST[$id] as $eventId => $winner){
         echo'<h3>'.$eventId.'</h3>';
    }//for loop
    }//end isset
    

    非常感谢任何帮助

2 个答案:

答案 0 :(得分:2)

$ id在此处定义为数组$id[$i]= $row['event_id'];。数组不能用作foreach数组中的键或其他。 这就是导致你在这一行出错的原因

foreach($_POST[$id] as $eventId => $winner){ //$id is an array of values
    echo'<h3>'.$eventId.'</h3>';
}//for loop

您必须为$ id创建第二个foreach语句,然后在当前的foreach语句中使用id值。

foreach( $id as $key => $val ) {
foreach( $_POST[$val] as $eventId => $winner){

答案 1 :(得分:0)

您不知道操作页面上的event_id值是什么,因此我认为您将不得不再次查询这些值:

if(isset($_POST['submit'])){
    /* do your query here */
    $data = array();
    while($row=mysql_fetch_array($result)){
     $data[] = $_POST[$row['event_id']];
    }

    foreach($data as $key => $value){
        print_r($_POST[$value]);
        echo "<br>";
    }
}