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

jak zsumować wyniki z kilku tabel

Object Storage Arubacloud
0 głosów
179 wizyt
pytanie zadane 27 kwietnia 2017 w SQL, bazy danych przez dervil Gaduła (3,030 p.)
edycja 9 maja 2017 przez dervil

MAM COŚ TAKIEGO

							for ($i = 1; $i <= $x; $i++)
							{
								$r=$p->fetch_assoc();
								require"baza.php";
								$r2=$p2->query
									(
										"SELECT * FROM ".$r['tabela']." WHERE id='".$_POST['id']."' "
									)
								;
								$a=$r2->num_rows;
								if
								(
									$a>NULL
								)	{
										$r3=$r2->fetch_assoc();
										$aa= $r3['x'];
										echo
											''.$aa.''
										;

									}
								
							}						

I TERAZ CHCIAŁBYM ZSUMOWAĆ WYNIKI $aa tak żeby jeden wynik a nie tyle ile jest w funkcji for.

JAK TO ZROBIĆ

3 odpowiedzi

+1 głos
odpowiedź 27 kwietnia 2017 przez Chess Szeryf (76,710 p.)
edycja 27 kwietnia 2017 przez Chess

Może najpierw ładuj wyniki z pętli for do tablicy, a następnie z tablicy je wyciągnij i dodaj.

Albo po prostu zrób to w taki sposób:

$wynik+=$aa;

Edit:

Przed pętlą daj:

$wynik=null;

Żeby nie było błędu: Undefined variable.

Aby znaleźć odpowiedź na twoje pytanie:

Undefined variable: wynik

ale działa
da sie jakoś wyeliminowac te wyskakujące błedy bo w zasadzie to działa?
dziwne

Wpisałem w google: undefined variable PHP i poszukałem odpowiedzi na nie.

 

komentarz 27 kwietnia 2017 przez dervil Gaduła (3,030 p.)
działa i nie działa, wyświetla błąd

zrobiłem

$wynik+=$aa;

echo $wynik;

sumuje ale nie robi jednej liczby tylko po kolej , oczywiście ostatnia to suma wszystkich

no i wywala  Undefined variable: wynik
komentarz 27 kwietnia 2017 przez dervil Gaduła (3,030 p.)
edycja 27 kwietnia 2017 przez dervil

o udało się ale

dziwne

wyjąłem $wynik+=$aa; i echo $wynik;  z funkcji for i działa, pokazuje jeden zsumowany wynik, ale wywala dwa błedy

Undefined variable: aa

Undefined variable: wynik

ale działa
da sie jakoś wyeliminowac te wyskakujące błedy bo w zasadzie to działa?
dziwne

error_reporting(E_ALL ^ E_NOTICE);
komentarz 29 kwietnia 2017 przez dervil Gaduła (3,030 p.)
dzięki , pomogło, a możesz mi napisać czemu zdefiniowanie zmiennej przed pętlą jako NULL eliminuje ten błąd?
komentarz 29 kwietnia 2017 przez dervil Gaduła (3,030 p.)
chyba wiem , sam się domyśliłem , 0+ , a bez zdefiniowania system czyta, error+, no tak, że też na to nie wpadłem, dzięki wielkie!!!
+1 głos
odpowiedź 30 kwietnia 2017 przez Excalibur Początkujący (400 p.)

Po co używać do tego celu PHP? Jest przecież gotowa funkcja w MySQL:

SELECT SUM(kolumna) AS suma FROM tabela

Jest tego sporo. Możesz tam robić średnie i inne cuda.

0 głosów
odpowiedź 29 kwietnia 2017 przez Chess Szeryf (76,710 p.)
edycja 29 kwietnia 2017 przez Chess
Kod:
$wynik+=$aa;

oznacza to samo, co:

$wynik=$aa+$wynik;

, więc zmienna wynik jest niezdefiniowana i trzeba ją zdefiniować, czyli podać jej jakąś wartość początkową przed zainicjalizowaniem zainicjowaniem.

Dajmy na to przykład:

<?php 
$wynik=null;
for($i=1;$i<=5;$i++){
	echo $wynik=$wynik+$i;
	//echo $wynik+=$i;
}
?>

Gdy $i=1, to $wynik nie istnieje.

Dopiero, gdy $i=2, to $wynik=1.

Dlaczego nie można $wynik=null napisać w pętli, a poza nią? Otóż dlatego, że gdy pętla ma $i=1,$i=2,$i=3; to $wynik będzie miał ciągle taką samą wartość, co iterację. Czyli dla:
 

for($i=1;$i<=5;$i++){ 
	$wynik=null;
	echo $wynik+=$i;
}

, będzie to:

echo null=null+1;
echo 1=null+2;
echo 2=null+3;
echo 3=null+4;
echo 4=null+5;
echo 5=null+6;//w tym miejscu pętla przerywa się, bo $i<=5.

 

echo $wynik=null+1; 
echo $wynik=null+2; 
echo $wynik=null+3; 
echo $wynik=null+4; 
echo $wynik=null+5; 

 

etc.

Poza nią:

echo null=null+1;
echo 1=1+2;
echo 3=3+3;
echo 6=6+4;
echo 10=10+5;
echo 15=15+6;//w tym miejscu pętla przerywa się, bo $i<=5.

echo $wynik=null+1;
echo $wynik=$wynik+2;
echo $wynik=$wynik+3;
echo $wynik=$wynik+4;
echo $wynik=$wynik+5;

Trochę nagmatwałem, pogmatwałem, ale mam nadzieję, że wiesz o co mi chodzi.

Dalej byłoby echo 15=15+6, czyli 21, ale pętla się kończy (przerywa) na $i<=5. Jeśli coś źle napisałem, to proszę mnie poprawić. Nie mogę dojść do ładu z tym kodem, jeśli wystąpiły jakiekolwiek pomyłki w kodzie, czy też rozumowaniu szczerze przepraszam jeszcze raz.

Podobne pytania

0 głosów
1 odpowiedź 1,375 wizyt
0 głosów
1 odpowiedź 760 wizyt
pytanie zadane 8 czerwca 2017 w SQL, bazy danych przez Rafik Obywatel (1,870 p.)
0 głosów
1 odpowiedź 412 wizyt

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...