PHP PDO - 我该怎么做

时间:2015-07-03 12:06:24

标签: php mysql pdo

我需要一种方法来做4个查询或者让我的$views变量能够从抓取最高视图数到第2个最高视图数等转换,我需要将它们格式化为数组因此$views[0];是第一高的观看次数,$views[4];是第四高的次数。

代码:

//Load Database Details
    require_once 'functions/db/dbconfig.php';

    //Database Connect - View - High - 1
    $db = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

    //Query and Fetch
    $res = $db->prepare("SELECT * FROM tvinfo ORDER BY views LIMIT 0, 1;");
    $res->setFetchMode(PDO::FETCH_ASSOC);
    $res->execute();
    $Result = $res->fetchAll();

    //Result Variables
    foreach ($Result as $r) {
        $name = $r['name'];
        $rating = $r['rating'];
        $imdbid = $r['imdbid'];
        $genre1 = $r['genre1'];
        if(!empty($r['genre2'])){ $genre2 = '- '.$r['genre2']; }
        $year = $r['year'];
        $views = $r['views'];
    }

1 个答案:

答案 0 :(得分:1)

未经测试但应该可以使用。

require_once 'functions/db/dbconfig.php';

//Database Connect - View - High - 1
$db = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

//Query and Fetch
$res = $db->prepare("SELECT * FROM tvinfo ORDER BY views DESC LIMIT 4;");
$res->setFetchMode(PDO::FETCH_ASSOC);
$res->execute();
$Result = $res->fetchAll();
//Result Variables
$views = array();
foreach ($Result as $r)
{
    $name = $r['name'];
    $rating = $r['rating'];
    $imdbid = $r['imdbid'];
    $genre1 = $r['genre1'];
    if(!empty($r['genre2'])){ $genre2 = '- '.$r['genre2']; }
    $year = $r['year'];
    $views[] = $r['views'];
}

var_dump($views);