Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]sumowanie wartości z mnożeniem
yoga
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 30.08.2006
Skąd: Far Far Away

Ostrzeżenie: (0%)
-----


Witam.
Mam następujący problem:
W bazie danych mam 2 tabele:
Tabela zamówienia:
+----+------+-----+-----+-------+-------------+
| id | szer | wys | szt | kolor | id_klienta |
+----+------+------+----+-------+-------------+
| 1 | 1111|1111| 1 | BIA | 123 |
| 1 | 2222|2222| 3 | BIA | 123 |
| 1 | 1212|1212| 2 | BIA | 123 |
| 1 | 1000|1000| 1 | BIA | 123 |
| 1 | 1001|1001| 1 | BIA | 123 |
| 1 | 1002|1003| 1 | BIA | 124 |
+----+------+------+----+-------+-------------+

Tabela Klient
+----+--------+----------------+--------+
| id | Imie | Nazwisko | status|
+----+--------+----------------+--------+
|123 | Jan | Kowalski | 0 |
|124 | Adam | Nowak | 1 |
+----+--------+----------------+--------+

Oraz taki kod:
  1. function zapotrzebowanie() {
  2.  
  3. $q = mysql_query("SELECT * FROM zam_klient WHERE status=0 "); //Pobieranie informacji o klientach ze zleceniami do realizacji
  4. while($a = mysql_fetch_array($q)) //pętla wyciagająca zamówione przez klienta moskitiery
  5. {
  6. $q2 = mysql_query("SELECT sum(szer), sum(wys) FROM zam_item WHERE id_klienta=".$a['id']." AND kolor='BIA'"); //wyciągamy sumę szerokości i wysokości dla danego klienta i danego koloru
  7. /* $q3 = mysql_query("SELECT szt FROM zam_item WHERE id_klienta=".$a['id']." AND kolor='BIA'"); */
  8. while ($a2 = mysql_fetch_array($q2)) { //pętla przetwarzająca wszystkie zlecenia dla danego klienta
  9. $w_biale=$a2['sum(szer)'] * 0.001; //suma wszystkich szerokości w zleceniu i zmiana na m
  10. $h_biale=$a2['sum(wys)'] * 0.001; //suma wszystkich wysokości w zleceniu i zmiana na m
  11. /* $sztuk_biale=$a2['szt']; */
  12.  
  13. $suma_w_zleceniu=($w_biale + $h_biale) * 2; //obliczamy obwód moskitiery a co za tym idzie długość potrzebnego profila
  14. echo $suma_w_zleceniu; //wyświetlanie ilości profila dla danego zlecenia
  15.  
  16.  
  17. echo '<br />';
  18. }
  19. }
  20.  
  21. }


Powyższy skrypt sumuje mi wysokość i szerokość dla danego klienta lecz problem pojawia się gdy mam kilka takich samych szt. - tak jak to pokazałem w tabeli zamowienia.
Problem mam również ze zsumowaniem wszystkich wyników - nie wiem jak mogę to ugryźć.

Skrypt ma mi pomóc w oszcowaniu ile profili aluminiowych o długości 5,8m muszę zamówić aby móc zrobić wszystkie moskitiery.

Bardzo proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kpt_lucek
post
Post #2





Grupa: Zarejestrowani
Postów: 428
Pomógł: 77
Dołączył: 10.07.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Kod
<?
$sql = mysql_query("SELECT * FROM `zam_item` INNER JOIN `zam_klient` ON zam_item.id_klienta = zam_klient.id WHERE zam_klient.status = 0");
        $suma = 0;
?>
        <table>
            <tr>
                <th>ID</th>
                <th>Wysokość</th>
                <th>Szerokość</th>
                <th>Sztuk</th>
                <th>Kolor</th>
                <th>Rygiel</th>
                <th>Lico</th>
            </tr>
<?
        while($row = mysql_fetch_arraY($sql, MYSQL_ASSOC))
        {
?>
            <tr>
                <td><?echo $row['id'];?></td>
                <td><?echo $row['wys'];?></td>
                <td><?echo $row['szer'];?></td>
                <td><?echo $row['szt'];?></td>
                <td><?echo $row['kolor'];?></td>
                <td><?echo $row['rygiel'];?></td>
                <td><?echo $row['lico'];?></td>
            </tr>
<?
        $suma = $suma + (($row['szer'] + $row['wys']) * $row['szt']);
        }
?>
            <tr>
                <th>Łącznie:</th>
                <td><?echo $suma;?> (<?echo $suma/1000;?>[m])</td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </table>
<?


Ten post edytował kpt_lucek 6.05.2012, 15:51:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 20:22