Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Problem z sumowaniem
Forum PHP.pl > Forum > Przedszkole
pawelb
Witam.

mam problem z sumowaniem wartości zapisanych w postaci "1 000" gdzie występuje spacja jako separator.
Nie mam wpływu na te dane w bazie a chciałbym jej jakoś szybko sumować.
Zrobiłem to tak:

  1. <?php
  2. $sql = mysql_query("SELECT SUM(wartosc) as qnt FROM tabela");
  3. while($row = mysql_fetch_array($sql))
  4.         {
  5.             $suma = $row[qnt]+0;
  6.         }
  7. ?>


ale nie zlicza mi rekordów ze wspomniana spacją.
Macie jakiś pomysł jak to ruszyć.
Wiem, że można by pewnie jakoś powyciągać poszczególne rekordy z wierszy i pousuwać spacje i następnie zsumować, ale zupełnie nie wiem jak napisać taki kod.
Pomocy.
Pozdrawiam
Paweł
JoShiMa
Jeśli w tabeli pole wartosc nie jest liczbą to nie zrobisz sumowania. Sczytuj wszystkie rekordy zapytaniem. Po php konwertuj do wartości liczbowej i sumuj.
1010
A jakie pole masz w bazie? Powinieneś mieć jakiś liczbowy (INT, BIGINT itp.) ale jak nie masz to musisz to chyba wyciągać


Bez tego to powinno działać coś takiego:
  1. <?
  2. $sql = mysql_query("SELECT wartosc FROM tabela");
  3. while($row = mysql_fetch_array($sql))
  4. {
  5.   $suma += str_replace(" ", "", $row['wartosc']);
  6. }
  7. ?>



PS: Używaj tagów php - to naprawdę ułatwia czytanie kodu
ddiceman
Da sie na poziome bazy danych:
  1. SELECT SUM(CAST(REPLACE(wartosc, " ", "") AS DECIMAL)) AS qnt FROM tabela;
pawelb
Dziękuję, o to chodziło!
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.