10/10/2018, 10:30

Convert Result sql to array

mình đang viết một hàm có chức năng show dữ liệu trong database kết quả sau khi thực hiện nó là một object (sau khi thực hiện hàm mysql_query) mình muốn chuyển kết quả này sang array bạn nào có cách chuyển sang hog zậy. thank

[=========> Bổ sung bài viết <=========]

Kết quả của mình muốn có dạng như zầy: $arr = array('0'=>array(....),'1'=>array(....),....)
ngoc_viet08 viết 12:45 ngày 10/10/2018
http://www.php.net/manual/en/functio...etch-array.php

"truy show" là gì ?
tại sao kết quả đưa về lại là object , khi mục tiêu của bác mún lại là array
honnhienh viết 12:35 ngày 10/10/2018
ah. mình muốn viết một hàm có chức năng là show csdl . Mình muốn viết hàm này cho họ xử dụng. Mình muốn khi họ gọi thì họ sẽ đưa vào các tham số như là. table cần truy vẫn, những field cần lấy ra và điều kiện nếu có. sau khi đưa vào thì hàm này có nhiệu vụ trả về về kết quả. bác có ý tưởng gì về vẫn đề này hông ?
ngoc_viet08 viết 12:35 ngày 10/10/2018
nhiệm vụ này cũng không khó lắm . bạn cứ làm bình thường
honnhienh viết 12:32 ngày 10/10/2018
nhưng vẫn đề kết quả trả về. mình hog biết là người ta truyền vào bao nhiêu table, bao nhiêu field vì zậy kết quả trả về mình chưa kiểm xoát được.
ngoc_viet08 viết 12:41 ngày 10/10/2018
bạn lập trình viên sao lại đi hỏi ngược thế , phải có cách để bạn xác định điều đó chứ . động não đi . input sao , output sao
honnhienh viết 12:37 ngày 10/10/2018
input của mình là một mảng (chữa các table cần lấy dữ liệu), một mảng cái field cần lấy. một mảng các điều kiện => xuất ra là một mảng ok. vẫn đề mà mình muốn hỏi có cach nào sau khi thực hiện hàm mysql_query nó trả về một object thừong thì mình dùng mysql_featch_array (hoặc các hàm tương tự để duyệt nó in ra ) nhưng bây giờ mình không thể làm cách này. mình muốn biết cói có cách nào chuyển trực tiếp từ cái object => array không. ban hiểu ý mình chứ ?
thuyduongcd viết 12:39 ngày 10/10/2018
Thì dùng fetch_array, thay vì in ra thì bây giờ add nó vào mảng khác, sau đó return mảng này. còn "không thể làm cách này" là sao nhỉ?

Cho cái class tham khảo:
Code:
<?php

class sql_query 
{
    var $DBHOST;//Host for connecting to
    var $DBUSER;//Mysql Username
    var $DBPASS;//Mysql Password
    var $DBNAME;//Your require Database


    function set_vars($host="localhost", $username="", $password="", $db="")
    {
        $this->DBHOST = $host;
        $this->DBUSER = $username;
        $this->DBPASS = $password;
        $this->DBNAME = $db;
    }

    function query($query)
    {
        // connecting, selecting database
        $sql_link = mysql_connect("$this->DBHOST","$this->DBUSER","$this->DBPASS")
        or print "Could not connect to database";

        // select the database
        mysql_select_db("$this->DBNAME") or print "Could not select database";

        // make the query
        $result = mysql_query($query);

        if (!$result)
        {
            return mysql_errno();
        }
        else
        {
            $this->result_raw = $result;
        }
    }

    function tableindex()
    {
        while ($fields = mysql_fetch_field($this->result_raw)) 
        {
            $colunas[] = $fields->name;
        }
        $this->columns = $colunas;
    }

    function tablemount()
    {
        while ($row = mysql_fetch_object($this->result_raw)) 
        {
            $return[] = $row;
        }
        $this->result=$return;
    }
}

?>
Example
Code:
<?

if ($server != "" && $user != "" && $pass != "" && $query != "" && $database != "")
{

    $table = new sql_query;

    $table->set_vars("$server","$user","$pass","$database");

    $table->query("$query");

    $table->tableindex();
    $table->tablemount();

    print "<table border=1><tr>\n";


    foreach ($table->columns as $coluna)
    {
        print "<td><b>$coluna</b></td>";
    }

    print "</tr>";


    foreach ($table->result as $row)
    {
        print "<tr>\n";
        foreach($table->columns as $column)
        {
            $field_result = $row->$column;
            print "<td>$field_result &nbsp</td>";
        }
        print "</tr>\n";
    }
    print "</table>" ;
}
?>
ngoc_viet08 viết 12:44 ngày 10/10/2018
input của mình là một mảng (chữa các table cần lấy dữ liệu), một mảng cái field cần lấy. một mảng các điều kiện => xuất ra là một mảng ok. vẫn đề mà mình muốn hỏi có cach nào sau khi thực hiện hàm mysql_query nó trả về một object thừong thì mình dùng mysql_featch_array (hoặc các hàm tương tự để duyệt nó in ra ) nhưng bây giờ mình không thể làm cách này. mình muốn biết cói có cách nào chuyển trực tiếp từ cái object => array không. ban hiểu ý mình chứ ?
nếu object là 1 kết quả từ mysql thì nó chỉ là 1 object mang biến chứ ko có function , nếu mục tiêu bạn muốn là array thì cứ chuyển trực tiếp nó qua , khỏi phải bàn thêm .

còn bình thường bạn muốn chuyển từ object -> array ? 2 cái này đâu tương đồng đâu mà chuyển ?

nếu vấn đề bài toán là ở chỗ phải filter dữ liệu từ nhiều table , bạn có thể lọc từng table , trả về array , và in dữ liệu ra . hoặc dùng 1 query kết hợp nhiều table để trả dữ liệu về array .

ko hiểu được vì sao phải cứ đưa nó về object , trong khi mục tiêu là array ?
Bài liên quan
0