• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Count Desc Limit

Object Storage Arubacloud
0 głosów
548 wizyt
pytanie zadane 8 kwietnia 2017 w PHP przez Alterwar Dyskutant (7,650 p.)

Witam,

mam kolumnę w bazie z wartościami "tak", "nie".

Próbuję wyświetlać ostatnie 8 wartości z bazy czyli "tak, nie, tak, tak, tak, nie, nie, tak".

Problem polega na tym, że muszę zliczyć w tych wartościach ile razy występuję "tak". No i udaje mi się to za pomocą counta. Jednak wtedy nie działa desc limit i count zlicza mi wszystkie wartości "tak" które znajdują się w bazie, a ja chcę by zliczał tylko te 8 ostanich i z nich podawał liczbę.

Tutaj kod

$aRows = $pdo->query("SELECT count(value) FROM addition WHERE (answer=1) AND (value='TAK') ORDER BY id DESC LIMIT 8")->fetchColumn();
echo $aRows;

Czyli bierze ostanie 8 wartości z bazy, sprawdza ile razy występuje tak i podaje np: 3. Nie mam już pomysłu jak to ugryźć.

komentarz 8 kwietnia 2017 przez Alterwar Dyskutant (7,650 p.)

Jeśli kogoś interesuje rozwiązanie to

$stm = $pdo->prepare("SELECT * FROM addition WHERE (answer=1) ORDER by id DESC LIMIT 8");
        $stm->execute();

        $counter = 0;
        foreach ($stm as $row) 
        {
        	
        	$x = $row['value'];
          echo "<input type='text' value='".$row['value']."'>"."<br>";

          if($x === "TAK")
          {
          	$counter++;
          }

        }

        if($counter <= 3)
        {
        	echo "mniejsze lub rowne 3";
        }
        else if($counter == 4)
        {
        	echo "rowne 4";
        }
        else
        {
        	echo "rowne lub wieksze 5";
        }
        echo $counter;

 

1 odpowiedź

0 głosów
odpowiedź 8 kwietnia 2017 przez Ehlert Ekspert (212,670 p.)
Po pierwsze trzymanie w bazie "tak" i "nie" jako wartości pola to grzech implementacyjny. Kolumna musi być typu boolean.

Teraz problem kwerendy. Jest to do zrobienia, ale jedyne co mi na ten moment przychodzi do głowy do subselect, którego nie powinno się używać. Skoro jest to tylko 8 rekordów, to możesz je zliczyć po stronie PHP.

Podobne pytania

0 głosów
1 odpowiedź 238 wizyt
pytanie zadane 11 maja 2018 w PHP przez Browarnik123 Użytkownik (830 p.)
0 głosów
1 odpowiedź 668 wizyt
0 głosów
1 odpowiedź 645 wizyt
pytanie zadane 22 marca 2017 w SQL, bazy danych przez PieroQQ Początkujący (420 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...