Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie z bazy do tablicy oraz działanie na tablicy.
Forum PHP.pl > Forum > PHP
mlody1982
Witam!
Mam problem z działaniami na tablicach.
Otóż mam bazę danych z dwiema tabelami: tbl_a oraz tbl_b

tbl_a zawiera "id" oraz "nazwę_serwera" w postaci:

1 | serv_l
2 | serv_m
3 | serv_n
4 | serv_o
5 | serv_p
6 | serv_r
7 | serv_s

tbl_b zawiera "id", "nazwę serwera" oraz "konta na nim" na zasadzie:

1 | serv_l | michal
2 | serv_l | wojtek
3 | serv_l | kasia
4 | serv_l | zosia
5 | serv_m | tomek
6 | serv_m | ania
7 | serv_m | paweł
8 | serv_n | józek
9 | serv_n | joanna
10 | serv_o | kate
11 | serv_o | jane
12 | serv_o | tom
13 | serv_o | ala
14 | serv_o | ola
15 | serv_p | zenek
16 | serv_p | tadek

Co chcielibyśmy zrobić:
- bierzemy pierwszy rekord z "tbl_a" (nazwę serwera) "serv_l", którego id='1'
- porównujemy jego nazwę z nazwą serwera w "tbl_b"
- jeżeli istnieje taki element budujemy tablicę na zasadzie:
"nazwa serwera" - pierwszy element tablicy
"konta na nim założone" - kolejne elementy tablicy

przykład:

tablica_a[0] = "serv_l";
tablica_a[1] = "michał";
tablica_a[2] = "wojtek";
tablica_a[3] = "kasia";
tablica_a[4] = "zosia";

tablica_b[0] = "serv_m";
tablica_b[1] = "tomek";
tablica_b[2] = "ania";
tablica_b[2] = "paweł";

tablica_c[0] = "serv_n";
tablica_c[1] = "józek";
tablica_c[1] = "joanna";
.
.
.
itd

Za pomoc dziękuję. Na wszelkie pytania chętnie odpowiem.
Pozdrawiam czytelników. smile.gif
melkorm
Relacje rób na id'ku danego servera - nie po jego nazwie smile.gif

  1. SELECT a.nazwaServera , b.nazwaKonta FROM tbl_a a INNER JOIN tbl_b b ON (a.nazwaServera=b.nazwaServera) WHERE a.idServera = '1';


no i w php ...
  1. <?php
  2. while($row = mysql_fetch_array($wynik)) {
  3. $tablica[$row['nazwaServera']][] = $row['konto'];
  4. }
  5. ?>

nie jest to dokładnie o co Tobie chodziło ... ale powinno wystarczyć otrzymujesz tablice na zasadzie :
Kod
array(1) {
  ["nazwaServera"]=>
  array(2) {
    [0]=>
    string(4) "konto1"
    [1]=>
    string(4) "konto2"
    [2]=>
    string(4) "konto3"
}
["nazwaServera2"]=>
  array(2) {
    [0]=>
    string(4) "konto1"
    [1]=>
    string(4) "konto2"
    [2]=>
    string(4) "konto3"
}

}

itp. ;p

Niestety wynikiem będzie zagnieżdżony foreach ale cóż ... jakoś dziś nie przyszło mi nic lepszego do głowy winksmiley.jpg
mlody1982
Cześć!

Dzięki za tak szybką odpowiedź.
Wydaje się że jest w porządku.

co dodałbym od siebie to to, że zapytanie:

SELECT a.nazwaServera , b.nazwaKonta FROM

zmieniłbym na:

SELECT a.id , b.id FROM

(prawdopodobnie tabela się rozrośnie sad.gif ) wtedy będę mógł odwoływać się po indeksie wiersza w tabeli, otrzymamy:

['id_serwera']][] = $row['id_konta']

Co o tym myślisz?
melkorm
no wiesz to jest już twój pomysł ale chyba raczej chcesz mieć nazwe tych userów an ie tylko ich id'ki ? :]

i zmień relacje na id_servera -> id_servera - nie po nazwach, bo jak zmiensiz nazwe servera to już dupa a tak możesz spokojnie edytować nazwe servera ;]
mlody1982
Serdecznie dziękuję za pomoc. Rozwiązanie na poziomie mysql przyniosło skutek.

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.