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

sql jak poprawnie zadać pytanie w php żeby otrzymać szukaną informację

Aruba Cloud - Virtual Private Server VPS
0 głosów
501 wizyt
pytanie zadane 26 lutego 2023 w SQL, bazy danych przez gatka84 Bywalec (2,150 p.)

Hej kombinuje i już kończą mi się pomysły tzn mam tabele w której jest nazwa i cena i teraz zliczam sobie wszystko dla nazwy i nie umiem poprawnie zapisać var_dump czy print_r żeby uzyskać wynik może na przykładzie

tabela koszty

cena   pomieszczenie

$results = mysqli_query($con, "SELECT SUM(cena) AS 'Total', pomieszczenie FROM koszty GROUP BY pomieszczenie") or die(mysqli_error());
while ($rows = mysqli_fetch_array($results)) { }

i w sql daje mi tak

5130.939999999997 	mieszkanie
398 	przedpokój
2199 	salon

i teraz kiedy daje

var_dump($results);

otrzymuje

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> array(2) { [0]=> int(17) [1]=> int(10) } ["num_rows"]=> int(3) ["type"]=> int(0) }

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> array(2) { [0]=> int(3) [1]=> int(11) } ["num_rows"]=> int(3) ["type"]=> int(0) }

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> array(2) { [0]=> int(4) [1]=> int(5) } ["num_rows"]=> int(3) ["type"]=> int(0) }

i nie wiem jak się do tego dobrać żeby wyświetlić dane sumowane np z salon

kombinowałam tak żeby zaokrąglić wyniki ale nie wiem jak wskazać że chodzi mi np o salon

<?php echo round($rows['sum(cena)'], 1); ?>

Będę wdzięczna za podpowiedź.

2 odpowiedzi

+1 głos
odpowiedź 26 lutego 2023 przez VBService Ekspert (256,600 p.)
edycja 26 lutego 2023 przez VBService
 
Najlepsza

nie umiem poprawnie zapisać var_dump czy print_r

var_dump(mysqli_fetch_array($results));
print_r(mysqli_fetch_array($results));

lub

while ($row = mysqli_fetch_array($results)) {
    var_dump($row);
    print_r($row);
}

możesz tak, jak zaproponował @SzkolnyAdmin;

$rows['pomieszczenie']=="salon"

zapisz np. tak

$results = mysqli_query($con, "SELECT SUM(cena) AS 'Total', pomieszczenie FROM koszty GROUP BY pomieszczenie") or die(mysqli_error());
while ($row = mysqli_fetch_array($results)) {
    if ($row['pomieszczenie'] == 'salon') {
        echo $row['Total'] . ' ' . $row['pomieszczenie'];
    }
}

 

lub 

$sql = "SELECT SUM(cena) AS 'total', pomieszczenie "
     . "FROM koszty WHERE pomieszczenie = 'salon' ";
$results = mysqli_query($con, $sql) or die(mysqli_error());
if (mysqli_num_rows($results) > 0) {
    $row = mysqli_fetch_array($results)
    echo round($row['total']) . ' ' . $row['pomieszczenie'];
} else {
    // w bazie nie ma pomieszczenia o nazwie 'salon'
}

 

1
komentarz 26 lutego 2023 przez gatka84 Bywalec (2,150 p.)
Dziękuje za odpowiedź bo kombinowałam, a to co w sieci znajdowałam nie rozwiązywało problemu, dokładnie tego szukałam.
+1 głos
odpowiedź 26 lutego 2023 przez SzkolnyAdmin Szeryf (89,570 p.)

Do zaokrąglenia wyniku sumowania w SQL możesz użyć funkcji ROUND()

W PHP możesz użyć funkcji ROUND() lub też funkcji NUMBER_FORMAT()

Jeżeli chodzi o wyświetlenie tylko wyników z wybranego pomieszczenia, sprawdzasz czy np.

$rows['pomieszczenie']=="salon"

 

Podobne pytania

0 głosów
1 odpowiedź 234 wizyt
0 głosów
3 odpowiedzi 3,514 wizyt
0 głosów
1 odpowiedź 382 wizyt
pytanie zadane 2 października 2016 w SQL, bazy danych przez rejzer Użytkownik (680 p.)

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...