2017-05-23 9 views
0

私は現在友達とウェブサイトを作っており、映画の平均格付けを表示する必要があります。PHPとSQLを使用してavergaeを表示

私は、「メモ」を含む多数の列(名前、メールなど)を持つデータベースを持っています。私はPHPやMySQLと過度に慣れていないんだよ

<?php 
$moyenne = "SELECT avg(note) FROM `annee_1`"; 
$test = $db->prepare($moyenne); 
$test->execute(); 
$resultat = $test->fetchAll(PDO::FETCH_ASSOC); 

echo $resultat; 
?> 

私の友人は、このコードを書きました。私は何かが間違っていることを知っています(数字は表示されませんが、単に "配列"となります)。

私の問題の解決策、または解決策はありますか?

ありがとうございます! :)

+0

'rating'を格納するためにどの列が使用されていますか? –

+0

'fetchAll()'は行の配列を返します(この場合は1行でなければなりません)。 'print_r($ resultat);'を実行して配列の内容と実際の値にアクセスする方法を調べてください。 – rickdenhaan

+0

'echo $ resultat [0] ['avg(note)'];'これを実行すると、突然多くの意味を持ち始めます。 –

答えて

1

whileループでパラメータを配列に渡すことで、結果にアクセスできます。 echo $結果をprint_r($resultat)で置き換え、受信した結果を確認することができます。

+0

にある可能性が高いです。ありがとう:) –

0

クエリは1つの列で1つの行を返します。そのようなクエリから単一の値を取得する簡単な方法は、代わりに

$resultat = $test->fetchAll(PDO::FETCH_ASSOC); 

$resultat = $test->fetchColumn(); 

を使用することですあなたはそれが何だから「アレイ」は、現在$resultatは(配列ですので、見ているfetchAll reutrns)、それをechoにしようとすると、文字列に変換されます。 PHPでは、配列の文字列表現は "Array"です。 See the documentation here

アレイは常に "Array"という文字列に変換されます。このため、エコーとプリントはそれ自身で配列の内容を表示することはできません。

代わりにfetchColumn()を使用すると、$resultatは配列になりません。あなたのコメントに基づいて、intでなければなりません。

関連する問題