无限循环——php中的sql查询


Infinite loop -- sql query in php

基本上,我试图使一个函数按性别在数据库中获取条目,并将其放入用于显示表的数组中。然而,在下面的代码中,我认为我正在进入一个无限循环——当我调用该函数时,页面加载了正确的条目,但继续加载,滚动条变得越来越长。我对php/mysql/web开发非常陌生,所以任何帮助都会非常感激!

<?
function getbyGender($g, &$form_data){
$sql = "select * from user_info where gender='".$g."'";
echo $sql;
$query = mysqli_query($this->dblink, $sql) or die (mysql_error());

while($info = mysqli_fetch_array($query, MYSQL_ASSOC))
{
  foreach($info as $key=>$value)
  {
      $form_data[$i][$key] = $value;
  }
  $i++;
}
} ?>

显示表的代码(使用yuitable API):

//Array to store all column labels to be used
$fields = array(
    'uname'=>'Username',
    'flname'=>'Full Name',
    'bday'=>'Birthday',
    'gender'=>'Gender',
    'comments'=>'Comments',
    'email'=>'Email',
);
$columns4 = $fields;
$t_columns4 = array();
//Format the table
foreach($columns4 as $key=>$value)
{
    $t_columns4[$key]['key'] = $value;
    $t_columns4[$key]['label'] = $value;
    $t_columns4[$key]['sortable'] = "false";
    $t_columns4[$key]['className'] = '';
    if ($value == 'Comments')
    {
        $t_columns4[$key]['width'] = '200';
    }
    else{

      $t_columns4[$key]['width'] = '100';
    }
}

$form_data = array();
$urls4 = array();
$sort4 = array();
$form_table = new yuitable("formtable");
$form_table->setColumns($t_columns4);

$local_mysql->getByGender('f', $form_data);

mysqli_fetch_array($query, MYSQL_ASSOC)应为mysqli_fetch_array($query, MYSQLI_ASSOC)。这应该是问题的根源。while循环很好,但你可能不需要while和foreach循环。

我实际上没有定义$ I = 0。我现在觉得自己好蠢……感谢Mark Baker指出这一点,以及其他所有人的帮助!