使用函数显示php从mysql db中检索的所有行?

时间:2014-03-18 15:29:54

标签: php html mysql html5

从db

中检索值的类函数
public function retrieveFun()
    {
        include 'inc/main.php';//connecting to db.
        $result = mysqli_query($con,"SELECT * FROM db  order by name DESC");
        while($row = mysqli_fetch_array($result))
          {
            $var = array('name' =>$row['name'] ,
                          'owner'=>$row['owner'],
                          'date'=>$row['date'] );
            // echo $var["name"]."<br/>";
            // echo $var["owner"]."<br/>";
            // echo $var["date"]."<br/><br/>";
            return array($var["name"],$var["owner"],$var["date"]);
          }
    }

和代码,我想显示以所需格式检索的所有行

$obj =  new classname();

$id= $obj->retrieveFun();

echo //here i want to display all the rows retrieved in table format.

请尽快帮助我

4 个答案:

答案 0 :(得分:1)

你在循环中有返回语句,没有任何意义。尝试将返回状态网放在循环之外。要以表格格式检索结果,我会这样做:

public function retrieveFun()
{
    include 'inc/main.php';//connecting to db.

    $result = mysqli_query($con,"SELECT * FROM db  order by name DESC");

    $resutlArray = array();
    while($row = mysqli_fetch_array($result))
    {
        array_push($resultArray, $row);
    }
    return $resultArray;
}

然后以表格格式显示结果:

$rows = $obj->retrieveFun();
echo '<table>';
foreach( $rows as $row ) 
{
   echo '<tr>';
   echo '<td>'.$row['name'].'</td>';
   echo '<td>'.$row['owner'].'</td>';
   echo '<td>'.$row['date'].'</td>';
   echo '</tr>';
}
echo '</table>';

答案 1 :(得分:0)

return电话放在while循环之外。目前,只有第一个结果会在返回之前存储。您要做的是在返回变量之前首先填充$var

显示行时:

$rows = $obj->retrieveFun();
foreach( $rows as $key => $row ) {
    echo $row[$key]['name'];
    echo $row[$key]['owner'];
    echo $row[$key]['date'];
}

请参阅$key支持的修改。

编辑:

此外,在获取结果时,将它们存储在数组中。

$var = array();
while ( $row = mysqli_fetch_array( $result ) ) {
    $var[] = array( ... );
}

答案 2 :(得分:0)

http://www.w3schools.com/Php/php_mysql_select.asp

W3C对于初学者来说是一个了不起的网站。我链接的页面正是您需要的。它有示例和源代码,以及解释。阅读这些例子,它会解释它,你应该能够理解它。

如果没有,请随时给我发消息,我会尽我所能。

W3C有许多教程可以涵盖网络的各个方面,浏览和惊讶!

在发布问题之前,最好先检查一下网络。我们在这里提供帮助,但前提是你要先帮助自己。

希望它有所帮助。 如果您从中得到了答案,请将其投票并将其标记为答案,以便其他人更容易找到答案。

注意:它位于“在HTML表格中显示结果”下的第二部分。

答案 3 :(得分:0)

我非常喜欢MySQL的PDO方法,它更清洁。这就是我要做的。具有DB连接的class和类中的公共函数。

课程+功能

class Database
{
    private $db = null;

    public function __construct()
    {
        $this->db = new PDO('mysql:host=localhost;dbname=pdo', 'root', 'password');
    }

    public function retrieveFun()
    {
        $query = $this->db->prepare("SELECT * FROM db ORDER BY name DESC");
        $query->execute();
        return $query->fetchAll();
    }
}

然后检索数据我使用foreach

if (retrieveFun()) { //Verify if the DB returned any row
    foreach (retrieveFun() as $key => $value) {
        echo $value->name . "<br />";
        echo $value->owner . "<br />";
        echo $value->date . "<br /><br />";
    }
} else {
    echo 'No data found.';
}

如果要在main.php中设置连接,可以执行以下操作:

//This section goes in the main.php file
define('DB_HOST', '127.0.0.1');
define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASS', 'password');

//You can then call the defined constants like this
$db = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME, DB_USER, DB_PASS);