Php 通用MySQL全选函数

Php 通用MySQL全选函数,php,mysql,Php,Mysql,我写了很多精选的。。。在我的网站上的一种查询。我想写一个函数来帮我处理这个问题,这样我就可以更快地调用它,而不用使用更高级的技术,比如PDO和OOP。我只是对如何调用从数据库检索的数据感到困惑,特别是在循环遍历数组结果时 我喜欢这样的东西: function selectAll($tableName, $limitAmount) { global $dbConnection; $query = mysql_query("SELECT * FROM $tableName ORDER

我写了很多精选的。。。在我的网站上的一种查询。我想写一个函数来帮我处理这个问题,这样我就可以更快地调用它,而不用使用更高级的技术,比如PDO和OOP。我只是对如何调用从数据库检索的数据感到困惑,特别是在循环遍历数组结果时

我喜欢这样的东西:

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循环。