Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Łączenie tablic
Forum PHP.pl > Forum > Przedszkole
Bojakki
mam 2 tablice:

  1. $fg[] = array('idfg' => '1', 'nazwa' => 'nazwa1', 't' => '1');
  2. $fg[] = array('idfg' => '2', 'nazwa' => 'uiopl', 't' => '1.');
  3. $fg[] = array('idfg' => '3', 'nazwa' => 'nazwa3', 't' => '1');
  4. $fg[] = array('idfg' => '4', 'nazwa' => 'eeeew', 't' => '1');
  5. $fg[] = array('idfg' => '5', 'nazwa' => 'eeeee', 't' => '2');
  6. $fg[] = array('idfg' => '7', 'nazwa' => 'nazwedwwa1', 't' => '2');
  7. $fg[] = array('idfg' => '12', 'nazwa' => 'edweedwed', 't' => '2');
  8. $fg[] = array('idfg' => '13', 'nazwa' => 'bvrtyu', 't' => '2');
  9. $fg[] = array('idfg' => '14', 'nazwa' => '1qasert', 't' => '3');
  10. $fg[] = array('idfg' => '15', 'nazwa' => 'ghyty', 't' => '3');
  11. $fg[] = array('idfg' => '16', 'nazwa' => 'lkopi', 't' => '3');
  12. $fg[] = array('idfg' => '17', 'nazwa' => 'ghtyui', 't' => '3');


  1. $fgm[] = array('idfgm' => '1', 'nazwa2' => 'Typ1');
  2. $fgm[] = array('idfgm' => '2', 'nazwa2' => 'Typ2');
  3. $fgm[] = array('idfgm' => '3', 'nazwa2' => 'Typ3');


Wyświetlam sobie talice nr 1:

  1. $query = mysql_query("SELECT * FROM genre WHERE fid = $fid ORDER BY gid") or die("Error SQL");
  2. while($row=mysql_fetch_row($query))
  3. {
  4. $sds = $row[1];
  5. ($row[1] > 0) ? $k[$sds]='1' : '0';
  6. }
  7.  
  8. foreach ($fg as $klucz => $wiersz) {
  9. $idfg[$klucz] = $wiersz['idfg'];
  10. $nazwa[$klucz] = $wiersz['nazwa'];
  11. $t[$klucz] = $wiersz['t'];
  12. }
  13. $kk=0;
  14. array_multisort($idfg, SORT_ASC, $fg);
  15. foreach ($fg as $pk) {
  16. if ($k[$pk['idfg']]==1){
  17. $z.=$pk['idfg'].'-'.$pk['nazwa'].'-'.$pk['t']; $z.="<br />";
  18. $kk++;
  19. }
  20. }
  21. echo $z;


Wszystko super sie wyswietla, ale teraz nie wiem jak zrobic by zrobic relacje między 'idfgm' z tabeli 2 i 't' z tabeli 1 tak by zamiast cyferki $pk['t'] uzyskać nazwę, która jest pod $fgm['nazwa2']


Wiedizałbym jak to zrobić gdyby były to tabelki w MYSQLu, ale nie chce takich robic gdyż elementy tablic będą stałe i nie będzie ich wiele więc niepotrzebnie obciążałyby zapytaniami baze. Czytałem o łączeniu tablic, ale mi nie wychodzi, są one dla mnie mało zrouzmiałe jakoś.
erix
Trzeba było z drugiej tablicy zrobić asocjacyjną, by nie było problemu.

  1. function searchName($tbl, $ID){
  2. $ret = -1;
  3.  
  4. foreach($tbl as $k=>$v){
  5. if($v['idfgm']==$ID){
  6. $ret = $k;
  7. break;
  8. }
  9. }
  10.  
  11. return $ret;
  12. }
  13.  
  14. foreach($fgm as $k=>$v){
  15. $fgm[$k]['nazwa'] = $fgm[searchName($fgm, $v['t'])]['nazwa2'];
  16. }


Dodaj sobie sprawdzanie, czy klucz istnieje.
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.