Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]dziwne interpretowanie tablicy wielowymiarowej..
Forum PHP.pl > Forum > Przedszkole
zietas
Witam!
Walcze, walcze i nie moge zawalczyc :/

Problem polega na tym, ze:
tworze tablice $users_array = array();
1. Mam tablice wielowymiarowa, ktora uzupelniam w nastepujacy sposb:
  1. <?php
  2. for($i=0;$i < $number; $i++) {
  3.            $users = $result->fetch_assoc();
  4.            $name = $users['pp_login'];
  5.            $id = $users['pp_id'];
  6.            
  7.            
  8.            $users_array[] = array($name,$id);
  9.            }
  10. ?>


Zaraz po "forze" tworze kolejnego do wyswietlenia tablicy (tak, zeby widziec, ze dobrze sie tworzy):
  1. <?php
  2. for($j=0;$j<sizeof($users_array);$j++)
  3.            {
  4.                while(list($name,$id) = each($users_array[$j]))
  5.                echo $name." ... ".$id."<br />";
  6.            }
  7. ?>

No i dostaje wynik:
  1. 40 ... usera
  2. 1 ... 73
  3. 0 ... userb
  4. 1 ... 72
  5. 0 ... userc
  6. 1 ... 48
  7. 0 ... userd
  8. 1 ... 1


juz nie wiem czy zamotalem sie w swojej glowie, czy juz za dlugo dzisiaj pisze.. ale ja nie wiem co jest nie tak..
bełdzio
kombinujesz troszke smile.gif jak chcesz zobaczyc czy dobrze sie tworzy zrob:

  1. <?php
  2. echo '<pre>';
  3. var_dump( $users_array );
  4. ?>
zietas
  1. array(4) { [0]=> array(2) { [0]=> string(8) "usera" [1]=> string(2) "73" } [1]=> array(2) { [0]=> string(9) "userb" [1]=> string(2) "72" } [2]=> array(2) { [0]=> string(5) "userc" [1]=> string(2) "48" } [3]=> array(2) { [0]=> string(6) "userd" [1]=> string(1) "1" } }

z var_dostaje taka odpowiedz..

dlaczego kombinuje?

Jak to latwiej zrobic? tzn. probowalem bez tablic wymiarowych, ale jakos nie udawalo mi sie :/
bełdzio
to inne pytanie co chcialbys zeby w owej tablicy bylo zamiast tego co jest?
zietas
Musze nadac zmiennej id wartosc id przechowywana w tablicy i zmiennej name wartosc name.

tak, zeby np. wyswietlic:

NAME: userd
ID: 1

po to, zeby na podstawie tych zmiennych wywolywac funkcje, ktora bedzie tworzyc odpowiednie zapytania do bazy.

czyli:
  1. <?php
  2. for($j=0;$j<sizeof($users_array);$j++)
  3.           {
  4.               while(list($name,$id) = each($users_array[$j])) // nie wiem czy $users_array[$j] jest dobrze...
  5.              
  6.               $zapytanie = "SELECT * FROM tabela WHERE name='".$name."' AND id='".$id."'";
  7.               /... dalszy kod .../
  8.           }
  9. ?>
bełdzio
to prosciej mozesz to zrobic smile.gif pobierz same id bez nazw w koncu id jest unikalny wiec nazwa nie jest potrzebna; jak bedziesz juz mial tablice z samymi id to zamien ja w stringa przy pomocy implode, a nastepnie zamiast w petli stukac zapytania stworz jedno w stylu select * from table where id IN ( i tu lista id utworzona przy pomocy implode )
zietas
rozwiazaniem okazalo sie zastsowanie wielowymiarowej tablicy asocjacyjnej

  1. <?php
  2. $users_array[$i]['id']
  3. ?>


dzieki za var_dump, bo kompletnie wypadlo mi z glowy!
Pozdrawiam
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.