“while($ row = mysqli_fetch_assoc($ result)){//}”有什么问题?

时间:2015-11-23 07:17:07

标签: php mysqli

我尝试过以下几种代码。但问题始终发生在^[1-9][0-9]{6}*$ ^([^0][0-9]){6}$ ... ..... "$row = mysqli_fetch_assoc($result)"方法将结果打印为数组,这意味着MYSQL查询没有错误。它给出了正确的结果。问题出在fetch assoc中。而不是print_r()我也使用了'assoc'

  

错误说“警告:mysqli_fetch_assoc()需要参数1   mysqli_result,给出的数组   第21行的C:\ xampp \ htdocs \ offoptimizer2 \ action \ fetch_client.php“

'array'

//这是我在

下面的select_all函数
class fetch_client{
        public function fetchdata(){
                $phn_number = $_GET["phn"];

                $db_action = new db_action();
                $result = $db_action->select_all("offopt_client","client_phn_no='".$phn_number."'");
                print_r($result);

                echo '<table border="0">';
                echo '<tr>';
                    echo '<th> client name </th>';
                    echo '<th> client phone number </th>';
                echo '</tr>';
                if($result != null){
                        while($row = mysqli_fetch_assoc($result)){
                            echo '<tr>';
                                echo "<td> ".$row['client_name']." </td>";
                                echo "<td> ".$row['client_phn_no']." </td>";
                            echo '</tr>';   
                            }
                        echo '</table>';
                    }else{
                            echo 'No result';
                        }


            }
    }

2 个答案:

答案 0 :(得分:1)

使用下面的'select_all'功能。

public function select_all($table_name, $where){
                $db_connect = new db_connect();
                $con = $db_connect->connect();
                if(!$con){
                        echo "Connection error";
                    }else{
                            $query = mysqli_query($con,"select * from ".$table_name." where ".$where." ");
                            if(!$query){
                                    echo "Error in your query".mysqli_error($query);
                                }else{
                                        $result = array();
                                        while($row = mysqli_fetch_assoc($query))
                                        array_push($result, $row);
                                        return $result;
                                    }
                        }
            }

现在,您可以在结果上使用foreach循环,如下所示:

foreach($result as $row)
   echo '<tr>';
   echo "<td> ".$row['client_name']." </td>";
   echo "<td> ".$row['client_phn_no']." </td>";
   echo '</tr>';   
}

答案 1 :(得分:0)

mysqli_fetch_assoc需要ressource而不是array。所以这看起来像$db_action->select_all方法在数组中返回数据库数据,因此在mysqli函数上执行带有结果的附加任务将无效。

如果您希望获得关联返回数据,请在$db_action后面编辑您的课程。