2017-05-23 1 views
0

Ich arbeite gerade an einer Website mit einem Freund und ich muss die durchschnittliche Bewertung für einen Film anzeigen.Anzeige einer Avergae mit PHP und SQL

Also habe ich eine Datenbank mit zahlreichen Spalten (Name, Mail, etc) einschließlich "Hinweis".

schrieb Mein Freund diesen Code:

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

echo $resultat; 
?> 

ich mit PHP oder MySQL nicht allzu vertraut bin. Ich weiß, dass etwas nicht stimmt (da hier keine Nummer angezeigt wird, sondern nur "Array"), aber ich weiß nicht was.

Irgendwelche Vorschläge, oder Lösung für mein Problem?

Danke! :)

+0

In welcher Spalte wird "Rating" gespeichert? –

+0

'fetchAll()' gibt ein Array von Zeilen zurück (in diesem Fall sollte es eine Zeile sein). Probieren Sie 'print_r ($ resultat);' aus, um zu sehen, was das Array enthält und wie man auf den tatsächlichen Wert zugreift. – rickdenhaan

+0

'echo $ resultat [0] ['avg (Anmerkung)'];' Führen Sie das aus und es wird plötzlich anfangen, viel Sinn zu machen –

Antwort

1

Sie können auf Ihr Ergebnis zugreifen, indem Sie Parameter mit einer while-Schleife an Ihr Array übergeben. Ersetzen Sie Ihr Echo $ Ergebnis durch print_r($resultat) und Sie können das Ergebnis überprüfen, das Sie erhalten haben.

+0

Das hat sehr geholfen. Vielen Dank :) –

0

Ihre Abfrage gibt eine Zeile mit einer Spalte zurück. Eine einfache Möglichkeit, einen einzelnen Wert aus einer Abfrage wie das zu bekommen, ist

$resultat = $test->fetchColumn(); 

Statt

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

Sie verwenden sehen „Array“ zur Zeit, da $resultat ein Array ist (weil das ist, was fetchAll reutrns), und wenn Sie versuchen, echo es, wird es in eine Zeichenfolge konvertiert. In PHP ist die Zeichenfolgendarstellung jedes Arrays "Array". See the documentation here:

Arrays werden immer in die Zeichenfolge "Array" konvertiert; deshalb können echo und print allein nicht den Inhalt eines Arrays anzeigen.

Wenn Sie stattdessen fetchColumn() verwenden, wird $resultat kein Array sein. Basierend auf Ihren Kommentaren sollte es ein Int sein.

Verwandte Themen