Php 通用MySQL全选函数
我写了很多精选的。。。在我的网站上的一种查询。我想写一个函数来帮我处理这个问题,这样我就可以更快地调用它,而不用使用更高级的技术,比如PDO和OOP。我只是对如何调用从数据库检索的数据感到困惑,特别是在循环遍历数组结果时 我喜欢这样的东西:Php 通用MySQL全选函数,php,mysql,Php,Mysql,我写了很多精选的。。。在我的网站上的一种查询。我想写一个函数来帮我处理这个问题,这样我就可以更快地调用它,而不用使用更高级的技术,比如PDO和OOP。我只是对如何调用从数据库检索的数据感到困惑,特别是在循环遍历数组结果时 我喜欢这样的东西: function selectAll($tableName, $limitAmount) { global $dbConnection; $query = mysql_query("SELECT * FROM $tableName ORDER
function selectAll($tableName, $limitAmount) {
global $dbConnection;
$query = mysql_query("SELECT * FROM $tableName ORDER BY id LIMIT $limitAmount");
$row_result = mysql_fetch_assoc($query);
return $row_result;
}
说是一堆新闻。我想以一种典型的方式循环查看结果:
// CALL THE FUNCTION
selectAll('news_table', '10');
// SOMEHOW LOOP THROUGH RESULTS??
do {
echo "<h2>".$row_result['title']."</h2>";
} while ($row_result = mysql_fetch_assoc($query));
//调用函数
选择全部('news_table','10');
//以某种方式循环通过结果??
做{
回显“$row_结果['title]”;
}而($row_result=mysql_fetch_assoc($query));
显然,我不是这样循环函数的定制结果的。我甚至不确定我的功能是否正确
非常感谢您的帮助
编辑:忘记在函数内部返回结果并调用实际函数。我的错。现在更新。像您这样调用这样的函数是没有意义的 就这样吧
function fetchAll($query) {
$res = mysql_query($query) or trigger_error("db: ".mysql_error()." in ".$query);
$a = array();
if ($res) {
while($row = mysql_fetch_assoc($res)) $a[]=$row;
}
return $a;
}
并将其用于任何查询:
$data = fetchAll("SELECT * FROM news_table ORDER BY id LIMIT 10");
foreach ($data as $row) {
echo $row['title'];
}
SQL查询本身就是一个功能强大的程序。不要将其功率降低到愚蠢的选择。使用SQL表示数据处理逻辑和此帮助函数以避免重复。您在哪里调用该函数?抱歉。。。忘记了,返回$row_结果;我已经更新了原始的post.Loop并获取结果以构造一个数组,然后返回该数组。然后,您可以在函数之外对该数组进行预处理以获得每个结果。Dan,您能用一些演示代码为我演示一下吗?我对语法不是百分之百的了解!很抱歉美丽的。谢谢你的合理逻辑和建议。这太完美了。这通常是由3或4行代码到1行代码组成的。如何检查数组中是否有行?我经常检查是否有行要显示,如果没有,我会显示一条消息,或者什么也不做,等等。您也可以将
foreach
与空数组一起使用-它不会输出任何内容。如果你仍然需要检查-简单地If($data){
实际上将是最后一个问题。找出有多少行的最好方法是什么?我经常喜欢根据行的数量做一些事情。我通常使用$total=mysql\u num\u rows($result);昨晚顺利地使用了您的函数。但是,我是否可以在不启动for each循环的情况下回显数据,例如,当我仅检索1行时?我已尝试仅使用echo$data['column']没有首先启动循环,但它返回了一个空值。为了详细说明……假设我使用上面的函数获取当前博客帖子:$post=fetchAll(“SELECT*FROM posts,其中id='$get_id'LIMIT 1”);……然后我想获取与该帖子相关的所有评论:$comments=fetchAll(“SELECT*FROM comments WHERE post_id='”、$post['id']、“'ORDER BY date ASC”);它不起作用,因为$post['id']返回空值,因为我们尚未实例化foreach循环。