Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> 2 pętle, multiple foreach i insert do SQL
Aquarius
post 11.09.2012, 13:30:44
Post #1





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 18.10.2008

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


witam,
od rana siedzę przy tym, ale niestety siedzę w czarnej... a w google nie znalazłem nawet podobnego problemu aby zaczęrpnąć jakichś wskazówek, sytuacja wygląda następująco, mam pewną pętlę z jakąś ilością liczb i liter
dajmy na to Array $a
chcę aby każde z tych oznaczeń z pętli został dodany do każdej frazy z innej pętli, robiłem to więc w ten sposób:
  1. foreach ($a as $i) {
  2. $model = "'accord$i', 'civic$i', 'prelude$i', 'cr-v$i', 'astra$i', 'vectra$i'";
  3. }


dotąd wszystko gra, ale mam też jeszcze jedną pętlę, dajmy na to Array $b
o powiedzmy takiej zawartości:
  1. $marka = "'honda', 'honda', 'honda', 'honda', 'opel', 'opel'";


chciałbym to wszystko dodać do bazy w ten sposób aby oczywiście każdy rekord z $marka odpowiadał temu z $model, bo oczywiście ich ilość jest taka sama w każdej pętli, w jaki sposób mógłbym to zrobić?
domyślam się że muszę wykonać kolejne foreach, problemem jest tylko zmienna $i która jest dopisywana do elementów z pierwszego foreach

Ten post edytował Aquarius 11.09.2012, 13:34:07
Go to the top of the page
+Quote Post
pehaperowiec
post 11.09.2012, 13:55:03
Post #2





Grupa: Zarejestrowani
Postów: 91
Pomógł: 8
Dołączył: 26.09.2011

Ostrzeżenie: (10%)
X----


a nie prościej użyć pętli while i w tej pętli łaczyć ze sobą elementy tych dwóch tablic a później je zapisywac?
Go to the top of the page
+Quote Post
jacobson
post 11.09.2012, 14:08:14
Post #3





Grupa: Zarejestrowani
Postów: 468
Pomógł: 36
Dołączył: 14.12.2010

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


a moze

  1. for($i=0;$i<sizeof($model);$i++){
  2.  
  3. $wynik = $model[$i] . $marka[$i];
  4.  
  5. }


mozesz jeszcze przed tym sprawdzac czy na pewno obie tablice maja tyle samo elementow
Go to the top of the page
+Quote Post
pehaperowiec
post 11.09.2012, 14:34:17
Post #4





Grupa: Zarejestrowani
Postów: 91
Pomógł: 8
Dołączył: 26.09.2011

Ostrzeżenie: (10%)
X----


1) While jest szybsze od fora
2) Sprawdzanie rozmiaru tablicy z każdym powtórzeniem pętli jest niewydajne
3)
Cytat
mozesz jeszcze przed tym sprawdzac czy na pewno obie tablice maja tyle samo elementow
Algorytm jest błędny...
Go to the top of the page
+Quote Post
Aquarius
post 11.09.2012, 15:01:56
Post #5





Grupa: Zarejestrowani
Postów: 36
Pomógł: 1
Dołączył: 18.10.2008

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


EDIT
działa pięknie, wystarczyła krótka pętla while smile.gif
  1. $r=0;
  2. while($r < count($model)) {
  3. echo $marka[$r]." - ".$model[$r].", ";
  4. $r++;


Ten post edytował Aquarius 11.09.2012, 15:20:31
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 02:36