我的目标是使用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");
答案 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,但无论您使用哪种数据库扩展,相同的通用方法都应该有效。