【问题标题】:PHP Loops to FunctionsPHP 循环到函数
【发布时间】:2014-04-25 03:26:44
【问题描述】:

我了解使用 for 循环遍历 MySQL 表并通过 if 语句(除其他外)提取数据。

但现在我试图更好地理解函数。所以为了保持简单和我理解的参考点,这就是我习惯做的事情:

require 'get_member_email.php'//where $memberEmail is defined
$query = "SELECT * FROM TABLE WHERE SOMETHING='SOMETHING ELSE'";
$results = mysql_query($query);

foreach ($results as $data){
      if ($memberEmail == $data['member_email']{ 
             $id = $data['member_id'];
      }
}

我通常会将该脚本存储在一个文件中,然后使用require(以及它上面的文件(其中定义了 $memberEmail)调用我的网站,然后通过以下方式将这两个文件调用到我的网页中:

require 'get_member_email.php';// where $member email is defined
require 'get_memeber_id.php'; //where the code above is 
echo "<h1>Your member ID is: $id</h1>";

1) 我将如何编写这个函数 2)这样做有什么好处吗? (而不仅仅是保留我的 requirefor 循环)

【问题讨论】:

  • 取出所有数据然后使用循环获取所需数据是一个坏主意。在 sql 中添加 where 条件以仅获取您想要的内容。
  • 是的,我知道,我会添加,以免分散注意力......但这不是我的问题:@xdazz
  • 旁注: 停止使用已弃用的 mysql_* 函数。请改用MySQLiPDO。这是一个很好的 PDO tutorial

标签: php loops for-loop


【解决方案1】:

1) 好的,你的问题是如何编写函数。

function loopFunction() {
    require 'get_member_email.php';
    $query = "SELECT * FROM TABLE WHERE SOMETHING='SOMETHING ELSE'";
    $results = mysql_query($query);

    foreach ($results as $data) {
        if ($memberEmail == $data['member_email']{ 
         $id = $data['member_id'];
        }
    }
}

通过这样做,您可以存储此过程并简单地调用它

loopFunction();

2) 是的,这样做有好处。由于您已经将其定义为一个函数,因此您不必再次创建此过程。你可以直接调用它。

当这个过程需要重复或在其他情况下重新使用时,这会让您受益。

【讨论】:

  • 是的,这是有道理的……但不是缺少返回语句吗?我将如何获取数据?
  • 如果你想返回数据,只需添加一个 return $id;在你的 foreach 底部
【解决方案2】:

您已经在数据库调用中获取了单个成员的所有数据。

require 'get_member_email.php'; // Define $memberEmail

// Select the member's data from the database
$query = "SELECT * FROM TABLE WHERE member_email = '".$memberEmail."'";

// Only need one member's data, so grab it.
$results = mysql_fetch_array($query);

$id = $results['id'];

注意:mysql 查询在较新版本的 PHP 中已被贬低;请改用mysqli calls

【讨论】:

  • 这根本不是我要问的。我已经知道该怎么做。我可以编写一个完整的“正常运行”的基于 php 的 web 应用程序,而无需调用函数,我正在尝试改变它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-05
  • 2014-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-11
相关资源
最近更新 更多