[php]Problem z podwójną pętlą

0
public function insertData($rows, $thing) {
	            $sql = "INSERT INTO vehiclescsv ";
	            $sql .= "(vehicle_id, make_id, make_textfield, modell_textfield, f_reg, baujahr";
	            $sql .= ", kilometer, fuel, vehicle_type_id, vehicle_type, kw, gearing_type";
	            $sql .= ", substructure_id, substructure, aoi, accident_vehicle, vat, equipments";
	            $sql .= ", tuv, gvw, axles, cab, emission, price, dealers, tel, country, zip, city";
	            $sql .= ", email, more_info, url_detailpage, url_image, url_thumbnail)";
	            //$sql = "INSERT INTO vehiclescsv (vehicle_id) VALUES (\"1\")";
	            $p = 0;
	            $k = 34;
				for($i=0; $i<20; $i++) {
					$sql .= "VALUES(";
					for($j=$p; $j<$k; $j++) {
						echo "j: $j, k: $k, p: $p<br />";
						
						$sql .= "'$thing[$j]', ";
							
					
					
					}		
					$sql .= ")";
//					echo $sql.'<br />';
				$p = $p+34;
				$k = $k+35;
				}
				
	      }

Witam...kod ten ma mi tworzyć zapytanie sql. Czemu takie skomplikowane?
Otóż tak: $thing to tablica która zawiera elementy (pojedyncze słowa po rozbiciu pliku .csv). Ich indeksy są od 0 do powiedzmy x
pętla z parametrem $i powstała dlatego że muszę dodawać pojedynczą linię naraz do tabeli. Linii jest np. 20 a w każdej linii są 34 słowa.
Chcę zrobić tak żeby każda linia po linii była dodana do tabeli. Niestety wychodzi mi to że tylko pierwsze jest dobre, każde następne to stare alementy starego zapytania + elementy nowego i tak z każdym obrotem powiększa się przez co już od drugiego nie mogę dodawać danych.
Po analizie tej linii echo "j: $j, k: $k, p: $p
"; (a dokładniej jej wyników) wszystko powinno być ok bo $k (końcowa granica pętli) i $p (początkowa granica pętli) jest odpowiednio zwiększane. Dlatego nie rozumiem czemu druga pętla z każdym przejściem pętli pierwszej indeksuje $thing od 0 do $k...powinno indeksować od $p do $k. W czym tkwi problem ?

0

W tym, że cały czas dane doklejasz do $sql, którego nigdzie nie zerujesz do postaci poczatkowej przed przejściem pętli.

0

faktycznie :) Tak się skupiłem na montowaniu zapytania, że zapomniałem je zerować :)
dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1