从我的SQL查询中获取前10名+如果检查

时间:2013-09-02 18:18:35

标签: php sql

我正在使用最喜欢的一些页面进入前10名(不要问为什么,这只是我的网站中我的数据库提供的链接的一个选项)

我现在正在这样做,所以我可以从链接中看到所有链接和facebook的数量。现在我想进入前10但不知道如何?我是否需要将它们全部存储起来,在数组中使用新的if语句然后显示它。

你们怎么处理这个?

PHP:

function get_the_fb_like($paginaurl){

        $url = $paginaurl; // setting a value in $url variable

        $params = 'select comment_count, share_count, like_count from link_stat where url = "'.$url.'"'; // preparing the query for the url

        $component = urlencode( $params ); // prepare the url for fetching the information from facebook

        $url = 'http://graph.facebook.com/fql?q='.$component; // constructed url

        $fbLIkeAndSahre = json_decode( file_get_contents_curl( $url ) ); // convert the json from our response to object

        $getFbStatus = $fbLIkeAndSahre->data['0'];

        return $getFbStatus->like_count; // return the number of like of the passed url

    }

    $result = $pdo->prepare('SELECT * FROM photos where geupload = :maandenjaar AND goedgekeurd = :goed');

    $result->execute(array(':maandenjaar' => $maandenjaar, ':goed' => 'ja'));

    $numrows = $result->rowCount();

    if($numrows != 0){
        foreach ($result as $row) {

            if(get_the_fb_like('?photo='.$row['id'].'') != 0){
                echo '
                            <div class="imgwrap">
                                <a href="'.$row['id'].'" title="'.$row['caption'].'"><img src="'.$row['location'].'" alt="'.$row['beschrijving'].'" /></a><br />
                                <p>Likes: '.get_the_fb_like('?photo='.$row['id'].'').'</p>
                            </div>
                        ';
            }

        }   
    }else{
        echo 'Er zijn geen afbeeldingen deze maand';
    }

修改

你们真的不明白我的问题,抱歉。我会尝试解释一下。 我有一个图片ID的数据库。那个人可以喜欢。

对于类似的计数,我使用url的facebook api来获得一个url的计数。 所以我无法从我的数据库中限制10,因为我没有将计数存储在我的数据库中。

2 个答案:

答案 0 :(得分:0)

假设您的所有链接都存储在link_stat表中,从您的问题看起来就是这种情况,您可以只对表进行排序查询并返回前10个结果。

SELECT *
FROM link_stat
ORDER BY like_count
LIMIT 0, 10

答案 1 :(得分:0)

$params = 'select comment_count, share_count, like_count from link_stat where url = "'.$url.'" ORDER BY like_count desc LIMIT 10'; // preparing the query for the url