从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.
请尽快帮助我
答案 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);