Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: tablice - sumowanie wartości
Forum PHP.pl > Forum > PHP
tonymld
[php:1:4a6f835593]<?
if ($op=="zam" && isset($kat)&& isset($id)) {
$plik="system/txt/cennik/$kat.inc"; // nazwa pliku z danymi
$file=fopen($plik,"r");
$tab[0]="Start"; // tworzymy tabele
$rozmiar=filesize($plik);
if ($rozmiar > 0) {
while (!feof ($file)) // odczytuje plik do konca
{
$zmienna = fgets($file, 4096); // pobiera jedn& linijkę o długo&ci 4096 znaków
array_push($tab,$zmienna); // dopisuje do tabeli
}
$ile=count($tab);
$ile--; // liczy ile pól ma tabela, nie licz&ć pola o warto&ci "Start"
for ($n=$ile;$n>1;$n--) // powtaraz z wszystkimi polami tabeli
{
$buffer=explode("||",$tab[$n]); // rozdziela zmienn& po kazdym ||
if ($buffer[0]=="$id") {
// dodawanie do pliku zam
print("Nazwa produktu: <b>$buffer[2]</b><br>Firma: <b>$buffer[1]</b><br>cena: <b>$buffer[3]</b> zł<br><br>Artykuł został pomy&lnie dodany do koszyka: <a href=zamowienie.php>zobacz koszyk</a>.");

$dane="n$buffer[1]||$buffer[2]||$buffer[3]||";
$file="system/zamowienia/$sklep.txt";
$fp=fopen("$file", "r+");
$dane=$dane.fread($fp, filesize($file));
rewind($fp);
flock($fp, 2);
fwrite($fp, $dane);
flock($fp, 3);
fclose($fp);
}
}
}
else {
print("<p align=center>Twój koszyk jest pusty!</p>");
}


}
else {
print("<p align=center><b>Twój koszyk:</b></p>");
$plik="system/zamowienia/$sklep.txt"; // nazwa pliku z danymi
$file=fopen($plik,"r");
$tab[0]="Start"; // tworzymy tabele
$rozmiar=filesize($plik);
if ($rozmiar > 0) {
print("<table border=0 align=center width=99% cellspacing=1 cellpadding=1>");
print("<tr class=n><td width=60%>&Nazwa produktu:</td><td width=30%>&Producent:</td><td width=10%>&Cena:</td></tr>");
while (!feof ($file)) // odczytuje plik do konca
{
$zmienna = fgets($file, 4096); // pobiera jedn& linijkę o długo&ci 4096 znaków
array_push($tab,$zmienna); // dopisuje do tabeli
}
$ile=count($tab);
$ile--; // liczy ile pól ma tabela, nie licz&ć pola o warto&ci "Start"
for ($n=$ile;$n>1;$n--) // powtaraz z wszystkimi polami tabeli
{
$buffer=explode("||",$tab[$n]); // rozdziela zmienn& po kazdym ||
?>
<tr onmouseover="bgColor='#66ccff'" bgColor='#F9F9FF' onmouseout="bgColor='#F9F9FF'"> <? echo"<td>&$buffer[1]</td><td>&$buffer[0]</td><td>&$buffer[2] zł</td></tr>";
#
}
$razem=questionmark.gif?;
print("</table><br>&Razem: <b>$razem</b> zł");
}
else {
print("<p align=center>Twój koszyk jest pusty!</p>");
}
}
?>[/php:1:4a6f835593]

Chodzi o to, aby $razem zawierała sumę wszystkich pól $buffer[2]

please help me :cry:


Prosze o umieszczanie kodu w znacznikach [php] - Seth
DeyV
Nie przeglaaełm kodu (na stępnym razem najpierw pisz, w czym problem, a dopiero póżniej dawaj kod) ale sądzę, że chodzi o array_sum()
tonymld
sama funkcja mi nic nie daje...

wiem, że trzeba dać cos takiego:
[php:1:d1c4e23b1c]<?php
$rozmiar=array_sum( );
?>[/php:1:d1c4e23b1c]

ale jakie paramerty funkcja przyjmuje to nie wiem, a szukałem u siebie w manualu i nie znalazłem sad.gif

jeśli chodzi o szczegóły, to mam takzapisane dane:
Kod
aaa||fff||23||

sss||ddd||3||

vvv||ggg||4||


chodzi mi o to, aby dodać do siebie wartości 23, 3 i 4, czyli w mojej tablicy $buffer[2]
[fisher]
Cytat
ale jakie paramerty funkcja przyjmuje to nie wiem, a szukałem u siebie w manualu i nie znalazłem sad.gif


nie klam, w manualu jest jak byk

http://php.mainseek.com/manual/pl/function...n.array-sum.php

jesli nie znajdziesz to pisze tutaj

Cytat
mixed array_sum (array tablica)
Myrek
Jeśli o to chodzi, co myślę, to za każdym razem wpisujesz w tą samą tablicę wartości z różnych wierszy pliku. Łatwiej by było od razu wpisywać je do tablicy wielowymiarowej, a później tylko zsumować kolumnę np. buffer[x][2],a do wyświetlania, funkcja foreach. Ale twoim sposobem, też da się to zrobić.
Za każdym razem, gdy tworzysz tablicę, cena towaru ($buffer[2]), jest zapisywana w nowej tablicy ($tablica[$x]), a po pętli sumujesz wartości z tablicy $tablica. Powinno tak działać.
Oto kod tej od tej pętli:
[php:1:3110936bd3]
for ($n=$ile;$n>1;$n--) // powtaraz z wszystkimi polami tabeli
{
$x=0;
$buffer=explode("||",$tab[$n]); // rozdziela zmienn& po kazdym ||
?>
<tr onmouseover="bgColor='#66ccff'" bgColor='#F9F9FF' onmouseout="bgColor='#F9F9FF'"> <? echo"<td>&$buffer[1]</td><td>&$buffer[0]</td><td>&$buffer[2] zł</td></tr>";
$tablica[$x]=$buffer[2];
$x++;
}
$razem=array_sum($tablica);
print("</table><br>&Razem: <b>$razem</b> zł");
}
else {
print("<p align=center>Twój koszyk jest pusty!</p>");
}
}
?>[/php:1:3110936bd3]

Nie wiem czy o to Ci chodziło, jak nie to napisz dokładniej o co jest grane.
Pozdrawienia.
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.