尝试使用mysql_fetch_array创建一个函数

时间:2015-05-29 18:26:49

标签: php mysql

我的目标是使用cron向用户发送pushbullet通知。

我有一个mysql数据库,其中有用户表和问题表。 我希望从用户表中获取所有用户之后创建另一个查询,该查询根据已分配的用户ID来自问题表。 最后发出通知。

这是细节和我尝试过的。 首先;我试图获得用户ID,它按预期工作。

   function some_function($sa){
   foreach($sa as $s)
      echo $s;

}

$sqlText['id']="SELECT users.id, 
                users.login
                FROM users
                GROUP BY users.login";

    $sqlQuery_MainMenu = mysql_db_query($db, $sqlText['id'], $connection) or die("Error");
    $file_names=array();
    while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu)){
        $users[]=$mm_Content["id"];
    }   
    foreach ($users as $user) {
        $foo=array($user);
        some_function($foo);
    }

由于我有用户ID,因此我尝试创建新查询,根据用户ID引发问题计数。但我不能这样做。我知道我想做什么,但我不知道该怎么做。

$sqlText['push']="SELECT COUNT(*)
FROM issues INNER JOIN users ON issues.assigned_to_id = users.id where assigned_to_id = $s";

    $sqlQuery_MainMenu = mysql_db_query($db, $sqlText['push'], $baglanti) or die("Error");
    $users=array();
    while($mm_Content=mysql_fetch_array($sqlQuery_MainMenu)){
        $users[]=$mm_Content;
    }   
    foreach($users as $index => $user){
        //$attachment .= $directory.'/'.$files[$index].', '."'$file_names[$index]'";
        echo $user[0] ;
         }

基本上我要做的是创建一个函数,为来自mysql的每个值运行以下行。

$pb->Device('user.id from db')->pushLink("Some text", "http://some link", "issue count");

1 个答案:

答案 0 :(得分:1)

我建议您可能不需要进行初始查询。我假设您不需要向没有问题的用户发送通知,因此您可以直接从问题表中获取用户ID,而无需先查询用户表。

$sql = "SELECT assigned_to_id AS user_id, COUNT(*) AS issue_count
    FROM issues GROUP BY assigned_to_id";

(如果您需要从用户表中获取其他信息,您仍然可以通过将两个表连接在一起来获得一个查询。)

执行查询后,您应该能够在从结果中提取记录时执行通知方法所做的任何操作。

$users_with_issues = mysqli_query($db, $sql);
while($user = mysqli_fetch_assoc($users_with_issues)){
    $pb->Device($user['user_id'])->pushLink(
        "Some text", "http://some link", $user['issue_count']);
}   

我在这个例子中使用了mysqli,但无论您使用哪种数据库扩展,相同的通用方法都应该有效。