2015-07-03 5 views
0

Мне нужен способ либо выполнить 4 запроса, либо сделать переменную $views, чтобы иметь возможность переключиться с захвата наивысшего количества просмотров на второй счетчик наивысшего просмотра и т. Д., И мне нужно, чтобы они были отформатирован как массив, так что $views[0]; - это первое наибольшее количество просмотров, а $views[4]; - это 4-е место.PHP PDO - Как я могу это сделать

Код:

//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']; 
    } 
+0

Не совсем уверен, что вы просите, но, возможно, вам нужен «ORDER BY views DESC»? –

+0

Что делает DESC? – Kyubeh2435436

+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); 
+0

Это прекрасно работает, но как я могу ограничить его только выдачей 4 просмотров в массив, как то, что LIMIT я использую, не уверен, что означает 0, 1. – Kyubeh2435436

+0

См. Редактирование в запросе. –

+0

Perfect Thank You – Kyubeh2435436

Смежные вопросы