Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Liczenie wyników
Forum PHP.pl > Forum > Przedszkole
plejaz
Witam, zaczynam swoją przygodę z prostymi skryptami php i mysql, obecnie bazuję na gotowych rozwiązaniach ucząc się i testując zapytania i analizując funkcjonowanie poszczególnych zmiennych.
Rzuciłem się na rozwiązanie oparte o bazę mysql na zasadzie prostego CRUD'a.
Kod
<?php
    require_once("perpage.php");    
    require_once("dbcontroller.php");
    $db_handle = new DBController();
    
    $name = "";
    $code = "";
    

    $queryCondition = "";
    if(!empty($_POST["search"])) {
        foreach($_POST["search"] as $k=>$v){
            if(!empty($v)) {

                $queryCases = array("1k","2k");
                if(in_array($k,$queryCases)) {
                    if(!empty($queryCondition)) {
                        $queryCondition .= " AND ";
                    } else {
                        $queryCondition .= " WHERE ";
                    }
                }
                switch($k) {
                    case "1k":
                        $name = $v;
                        $queryCondition .= "1k LIKE '" . $v . "%'";
                        break;
                    case "2k":
                        $code = $v;
                        $queryCondition .= "2k LIKE '" . $v . "%'";
                        break;
                }
            }
        }
    }
    $orderby = " ORDER BY id desc";
    $sql = "SELECT * FROM proby " . $queryCondition;
    $href = 'index.php';                    
        
    $perPage = 100;
    $page = 1;
    if(isset($_POST['page'])){
        $page = $_POST['page'];
    }
    $start = ($page-1)*$perPage;
    if($start < 0) $start = 0;
        
    $query =  $sql . $orderby .  " limit " . $start . "," . $perPage;
    $result = $db_handle->runQuery($query);
    
    if(!empty($result)) {
        $result["perpage"] = showperpage($sql, $perPage, $href);
    }
?>

W gotowym już skrypcie wbudowana jest funkcja wyszukiwania poszczególnych kolumn w zależności, w które miejsce zostanie wpisana fraza.
Wszystko działa bez problemu, jednak chciałem wzbogacić skrypt o wyświetlanie ilości znalezionych rekordów będących sumą wskazanej kolumny.
Potrafię zadać zapytanie o zwrócenie ilości rekordów z bazy:
Kod
$query = mysql_query("SELECT COUNT(id) as ilosc FROM tabelka;");
$row = mysql_fetch_array($query);
echo $row['ilosc'];

ale niestety nie wiem w jaki sposób zwrócić sumę z konkretnej kolumny.
nospor
$razem = $ilosc1 + $ilosc2;
plejaz
Cytat(nospor @ 20.07.2017, 14:07:01 ) *
$razem = $ilosc1 + $ilosc2;

Ok, co w sytuacji kiedy na szukaną frazę dostanę odpowiedź w postaci 10 wyników i w każdej kolumnie ilość pojawią się różne wartości ?
Skąd $razem ma wiedzieć, że musi zsumować wszystko, jeśli wskazane ma tylko 2 zmienne $ilosc1 + $ilosc2 ?

Dodatkowo w jaki sposób mogę przerobić wyszukiwarkę tak żeby szukała wartości znajdującej się w kolumnie nawet jeśli po "spacji" wpisane są różne wartości np.
1 wiersz = AA BB CC
2 wiersz = BB
3 wiersz = CC

Szukam frazy CC i dostaję odpowiedź w postaci dwóch wierszy: 1 wiersz i 3 wiersz, gdyż w nich wystąpiła szukana fraza.
plejaz
Zastosowałem funkcję, ale sumuje wszystkie rekordy dostępne w bazie danych, a mnie zależy żeby zsumowało po wyszukaniu.
nospor
Ja naprawde nie ogarniam problemu.
Skoro kazda ilosc wywietlasz oddzielnie w php to jaki problem to zsumowac tez w php? Tam gdzie w kodzie masz
echo $row['ilosc'];

to dodaj jeszcze
$suma += $row['ilosc'];
echo $row['ilosc'];

I masz swoja sume. No na sile sobie komplikujesz zycie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.