我花了很长时间试图自己想出一个解决这个问题的好方法。还没有找到任何好的答案来提供帮助,尽管我尝试过从不同的答案中划分解决方案,但没有运气。
目标:展示一个分页的项目页面,其中包含来自多个表的数据。
我在单个 MYSQL 查询中使用了多个连接,因为我想避免在 PHP 循环中运行查询。while(fetch_assoc)
仅此一项就引入了 fetch_assoc 问题,由于查询产生的重复行,我不得不从循环中构建自己的结果数组。然而,下一个问题是查询通过一个分页类运行,我用它来生成分页链接并获取查询数据,如 num_rows 等。
所以现在,我有一个页面显示我想要的数据,但是分页类向我显示了错误的行数和分页链接。不确定解决此问题的最佳方法是什么。希望从你们中的一位出色的专家那里得到一些想法!
代码基本上是:
$sql = "...."
$projects = new pager($sql)
echo $projects->num_rows
while($projects->fetch_assoc){
build new array from data
$project_array[][][]
}
foreach($project_array){
display data from all tables...
}
$projects->showPageLinks
此SQLFiddle提供了我获得的数据的示例:
请注意,有 7 个结果行,但只有 4 个项目。所以分页类显示 7 个 num_rows (正确),但只有 4 个项目。
欢迎任何想法!
我虽然可能将来自其他表的子查询结果连接到自己的列中的字符串值,并使用 phpexplode()
等解析它,然后生成包含所有数据的单个项目行,但我还没有能够做到这一点。
预先感谢您的帮助!