Autor Zpráva
Fisak
Profil
Dobrý den. Chtěl bych vytvoři žebříček. Mám tabulku "videos" a u toho mam sloupce "name" a "views" chtěl bych vypsat ty "name" tak aby šli po sobě podle součtu "views" tzn.
"SELECT * FROM [videos] where [approved] = %s", "yes", "ORDER BY COUNT(views) DESC"
ale bohužel nevím jak udělat to aby se mi vždy vzaly všechny řádky s jedním tím "name" a sečetli se tatkto dohromady..
Děkuji předem za každou radu..
Kajman
Profil
SELECT name,
       Sum(views) soucet
FROM   videos
WHERE  approved = 'yes'
GROUP  BY name
ORDER  BY soucet DESC 
Fisak
Profil
Kajman:
Vypíše mi to jen unikátní jména ale ne součty "views"
<?php
    $rest_video = DB::query("SELECT channel, Sum(views) soucet FROM  [youtube_videos] WHERE [approved] = %s", "yes", "GROUP BY channel ORDER BY soucet DESC ")->fetchAll();
        foreach ($rest_video as $n => $row_video) {
       echo $row_video->channel." || ".$row_video->views."<br>";
    }
?>



toto mi pouze seče řádky určitých channelů..:
<?php
    $rest_video = DB::query("SELECT channel, Sum(views) soucet FROM [youtube_videos] WHERE [approved] = %s", "yes", "GROUP BY channel ORDER BY soucet DESC")->fetchAll();
        foreach ($rest_video as $n => $row_video) {
    
    $rest_video_count = DB::query("SELECT [views] FROM [youtube_videos] WHERE [approved] = %s", "yes", " and [channel] = %s", $row_video->channel);
       echo $row_video->channel." || ".count($rest_video_count)."<br>";
    }



ještšě jsem to torchu pozměnil ale stejně to nefunguje tak jak má...:
$rest_video_count = DB::query("SELECT [views], Sum(views) FROM [youtube_videos] WHERE [approved] = %s", "yes", " and [channel] = %s", $row_video->channel, "GROUP BY channel");
       echo $row_video->channel." || ".$rest_video_count->fetchSingle('views')."<br>";
Kajman
Profil
Na řádku 4 u prvního kódu použijte máte chybu, zkuste
echo $row_video->channel." || ".$row_video->soucet."<br>";
Fisak
Profil
Kajman:
Paráda funguje to.. děkuji moc..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0