代码如下,把run()方法里面的foreach语句换成for就不会错了,但是foreach为什么会错我没搞懂:
<html>
<body>
<p>
<?php
//连接数据库
function db_connect(){
$result=new mysqli('localhost','***','******','*****');
if(!$result){
echo 'could not connect to db<br/>';
return false;
}else
return $result;
}
function get_lists(){
$db=db_connect();
$lists=array();
$query="select a ,b from a_table ";
$result=$db->query($query);
for($i=0;$i<$result->num_rows;$i++){
$row=$result->fetch_assoc();
array_push($lists,$row);
}
return $lists;
}
function run(){
$lists=get_lists();
foreach($lists as $e){
$e['c']=1;
}
// for($i=0;$i<sizeof($lists);$i++){
// $lists[$i]['c']=1;
// }
foreach($lists as $a){
echo $a['c']."<br/>";//就是这个地方经常跑出问题,说没有'c'这个Index.但是如果不用上面的
} //foreach语句,而是用注释掉的for语句的话就没有问题了
}
run();
?>
</p>
</body>
</html>
<html>
<body>
<p>
<?php
//连接数据库
function db_connect(){
$result=new mysqli('localhost','***','******','*****');
if(!$result){
echo 'could not connect to db<br/>';
return false;
}else
return $result;
}
function get_lists(){
$db=db_connect();
$lists=array();
$query="select a ,b from a_table ";
$result=$db->query($query);
for($i=0;$i<$result->num_rows;$i++){
$row=$result->fetch_assoc();
array_push($lists,$row);
}
return $lists;
}
function run(){
$lists=get_lists();
foreach($lists as $e){
$e['c']=1;
}
// for($i=0;$i<sizeof($lists);$i++){
// $lists[$i]['c']=1;
// }
foreach($lists as $a){
echo $a['c']."<br/>";//就是这个地方经常跑出问题,说没有'c'这个Index.但是如果不用上面的
} //foreach语句,而是用注释掉的for语句的话就没有问题了
}
run();
?>
</p>
</body>
</html>