无法从php查询中获取所有数据

时间:2015-08-06 09:10:25

标签: php mysql

我想为所有与用户相关的更新发出用户通知。所以下面我试着做一些sql查询。

  1. 我的第一个查询从关注表中获取所有关注者ID
  2. 第二次查询从likes_user表
  3. 获取用户喜欢的所有页面ID
  4. 根据上述ID的第3个查询尝试查找更新表的新更新
  5. 这里我的查询无法让我的所有关注者ID进行第三次查询。

    这里给出了我的详细工作:

    MethodNotAllowedHttpException in RouteCollection.php line 201:

    更新:此处第三次查询得到的ID少了两次或更多

    这里有关于foreach的问题..替换为

    $_GET['uid'] = $session->id;
    // Find out all follower id by user
    $rows=array();
    $q = mysqli_query($dbh,"SELECT friend_two 
                            FROM follow 
                            WHERE  friend_one='".$_GET['uid']."'") 
                               or die(mysqli_error($dbh));
    while ($row = mysqli_fetch_assoc($q)) {
        $rows[]["friend_two"] = $row['friend_two'];
    }
    
    // Find out all pages id liked by user
    $rows=array();
    $d = mysqli_query($dbh,"SELECT userid 
                            FROM likes_user 
                            WHERE ip='".$_GET['uid']."'") 
                   or die(mysqli_error($dbh));
    
    while ($row = mysqli_fetch_array($d)) {
       $rows[]["userid"] = $row['userid'];
    }
    
    
    foreach($rows as $row) {
        $f2_id = $row['friend_two'];
        $pageid = $row['userid'];
    
        // echo all ids for test
        // **** cannot echo all $f2_id ids for test ****
        echo $f2_id;
        echo '<br>';
        echo $pageid;
    
        // Get all update ids
        $g = mysqli_query($dbh,"SELECT id 
                                FROM update WHERE 
                                    `to_id`='".$myid."' 
                                AND `from_id`='".$f2_id."' 
                                 OR `to_id`='".$pageid."' 
                                 OR `from_id`='".$pageid."' 
                                AND `to_id`=''") 
                         or die(mysqli_error($dbh));
        while ($rows = mysqli_fetch_assoc($g)) {
            $ids[]= $rows['id'];
            // ids will go for next query
        } 
    }
    

1 个答案:

答案 0 :(得分:0)

基本上你构建的$rows数组看起来并不像你认为的那样!

要在$rows数组中查看实际生成的内容,请在尝试处理print_r()数组之前添加$rows,并且问题应该变得明显。

喜欢这个

print_r($rows);

foreach($rows as $row) {
    $f2_id = $row['friend_two'];
    $pageid = $row['userid'];

你如何解决这个问题我不确定,因为我不知道你的数据库!

此脚本中还有许多其他问题,太多了。