繁体   English   中英

显示所有PHP从MySQL数据库使用功能检索的行?

[英]display all the rows retrieved by php from mysql db using function?

从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.

请尽快帮我

在while循环中有return语句,这没有任何意义。 尝试将return statemanet放在循环之外。 要以表格格式检索结果,我会这样做:

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>';

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( ... );
}

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

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

如果没有,请随时给我发消息,我会尽力而为。

W3C有许多教程,几乎涵盖了Web,浏览和惊奇的各个方面!

张贴问题之前,最好先上网查询。 我们在这里为您提供帮助,但前提是您先尝试自己帮助自己。

希望能帮助到你。 如果您从中得到答案,请将其投票并标记为答案,以便其他人可以更轻松地找到它。

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

我真的很喜欢MySQLi上的PDO方法,它更加干净。 这就是我要做的。 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM