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

Problem z algorytmem PHP.

Object Storage Arubacloud
0 głosów
264 wizyt
pytanie zadane 16 kwietnia 2016 w Sieci komputerowe, internet przez CzikaCarry Szeryf (75,340 p.)

Witam. Napisałem algorytm w PHP. W pliku index.php zapisałem wygląd tabeli i 48 pól input typu text. Inputy są ponazywane kolejno "ilosc[0]", "moc[0]", "ilosc[n]", "moc[n]". Kody inputów:

<tr>
				<td class="tg-s6z2">00:00-01:00</td>
				<td class="tg-s6z2"><input type="text" name="ilosc[0]" size="1" /></td>
				<td class="tg-s6z2"><input type="text" name="moc[0]" size="1" /></td>
				<td class="tg-s6z2"></td>
			  </tr>

//..........................................................................................

			  <tr>
				<td class="tg-baqh">23:00-24:00</td>
				<td class="tg-baqh"><input type="text" name="ilosc[23]" size="1" /></td>
				<td class="tg-baqh"><input type="text" name="moc[23]" size="1" /></td>
				<td class="tg-baqh"></td>
			  </tr>

 

 

 Na pierwszy rzut oka algorytm powinien działać. Otóż nie działa. Algorytm:


	
<?php	
	session_start();
	$i=0;
	$nikotyna= array();
	$moc= array();
	$ilosc= array();
	
	
	while($i<23)
	{

		$ilosc[$i] = $_POST["'ilosc[$i]'"];
		$moc[$i] = $_POST["'moc[$i]'"];
		$i++;
	}
	$i=0;
	

    while($i<23)
	{
		$nikotyna[$i]=($moc[$i]*$ilosc[$i])+(0.7*$nikotyna[$i-1]);
		$i++;
	}
	
	$i=0;
	
	while($i<23)
	{
		$_SESSION['nikotyna'][$i]=$nikotyna[$i];
		
		echo $i.". ".$_SESSION['nikotyna'][$i]."<br/>";
		
		$i++;
	}
	
	
	
	
?>
	

Dodam, że w obydwu plikach dodałem sesję. Po kliknięciu przycisku submit, który uruchamia algorytm i postuje mu dane z inputów. Po uruchomieniu się algorytmu w przeglądarce wyskakuje mi:

Notice: Undefined index: 'ilosc[0]' in E:\xampp\htdocs\projekt\algorytm.php on line 14

Notice: Undefined index: 'moc[0]' in E:\xampp\htdocs\projekt\algorytm.php on line 15

.............

Notice: Undefined index: 'ilosc[22]' in E:\xampp\htdocs\projekt\algorytm.php on line 14

Notice: Undefined index: 'moc[22]' in E:\xampp\htdocs\projekt\algorytm.php on line 15

 

Z góry dzięki za pomoc

3 odpowiedzi

+2 głosów
odpowiedź 16 kwietnia 2016 przez Comandeer Guru (600,810 p.)
wybrane 16 kwietnia 2016 przez CzikaCarry
 
Najlepsza

$_POST["'ilosc[$i]'"]  → całkowicie nie tak! Raczej $_POST['ilosc'][$i]

Dostajesz bowiem tablicę pod nazwą pola, nie pole o takiej dziwnej nazwie.

komentarz 16 kwietnia 2016 przez CzikaCarry Szeryf (75,340 p.)
Spróbuję, przetestuję, zaraz napiszę :D Działa, dzięki wielkie, tego właśnie szukałem. Aż wstyd, że głowiłem się nad tym 1,5h a wystarczyło poprawić 2 linijki. Ehh... :D
komentarz 16 kwietnia 2016 przez writen Nałogowiec (29,060 p.)

Spróbuję, przetestuję, zaraz napiszę :D Działa, dzięki wielkie, tego właśnie szukałem. Aż wstyd, że głowiłem się nad tym 1,5h a wystarczyło poprawić 2 linijki. Ehh... :D

Wstyd, że zapomniałeś użyć var_dump i byś miał problem rozwiązany w pół minuty. Polecam zapoznać się z procesem debugowania kodu.

komentarz 16 kwietnia 2016 przez efiku Szeryf (75,160 p.)

Aż wstyd, że żaden z Was nie polecił mu doinstalowanie xDebuga i debugowania jak człowiek laugh

 

Sorki, to tak fajnie wygląda!

1
komentarz 16 kwietnia 2016 przez Comandeer Guru (600,810 p.)
Wiesz… bo czasami pewne rzeczy wydają się po prostu zbyt oczywiste ;)
+2 głosów
odpowiedź 16 kwietnia 2016 przez writen Nałogowiec (29,060 p.)
edycja 16 kwietnia 2016 przez writen

Zrób sobie tak:

var_dump($_POST);

i dowiesz się, że nie ma czegoś takiego jak $_POST['ilosc[0]'], $_POST['ilosc[1]'], itd. Jest tylko $_POST['ilosc'], która zawiera tablicę z wartościami poszczególnych inputów. Więc powinieneś zrobić:

$_POST['ilosc'][$i]

Dodatkowo nawet nie musisz tych inputów numerować, wystarczy tak:

<input type="text" name="ilosc[]" size="1" />

i jechać foreachem.  Jedna pętla raczej by wystarczyła.

+2 głosów
odpowiedź 16 kwietnia 2016 przez Schizohatter Nałogowiec (39,600 p.)

A jak poprawisz to, co napisał writen i Comandeer to wiedz, że możesz też zapisać te poszczególne pola jako:

name="pole[]" zamiast identyfikować po kolei je numerkami pole[1]...pole[n]

Podobne pytania

0 głosów
1 odpowiedź 1,548 wizyt
pytanie zadane 8 czerwca 2015 w JavaScript przez Mizukage Pasjonat (21,750 p.)
0 głosów
2 odpowiedzi 441 wizyt
pytanie zadane 21 maja 2015 w JavaScript przez ArturB Mądrala (6,060 p.)
0 głosów
2 odpowiedzi 348 wizyt
pytanie zadane 20 września 2016 w PHP przez Ditrix Mądrala (5,650 p.)

92,555 zapytań

141,403 odpowiedzi

319,557 komentarzy

61,940 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!

...