Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mySQL]Jak pobrać dane z wielu tabel ignorując tabele puste
Forum PHP.pl > Forum > Przedszkole
yahreck
W jednej tabeli mam spis wszystkich pozostałych tabel, z których jedne są puste, inne nie.
Jak pobrać dane tylko z niepustych tabel, a puste zignorować?

Gdy piszę zapytanie typu
  1. SELECT `szukane_pole` FROM `$tabele`

to po napotkaniu na pierwsza pustą tabelę pojawia się komunikat:
Table 'moja_baza.Array' doesn't exist

Z góry dziękuję za ewentualne propozycje rozwiązania problemu.
Daimos
zapytanie jest totalnie bledne, skoro masz tablice $tabele
to nie mozesz tego wywolac tak jak to probojesz zrobic
sprawdz sam zreszta:
  1. <?php
  2. $tabele = array('a','b');
  3. echo $tabele;
  4. ?>

co otrzymasz w odpowiedzi?
Array
a jak wyswietlisz tak:
  1. <?
  2. echo $tabele[0];
  3. ?>

to juz bedziesz mial zwrocony pierwszy element tablicy

tablice musisz odczytac w petli i przy okazji mozesz sprawdzac czy jest pusta
np. while" title="Zobacz w manualu PHP" target="_manual
yahreck
Pozwoliłem sobie na pewien skrót i zostałem źle zrozumiany.
Już się poprawiam. Poniżej całość:
  1. <?php
  2. $sql = "SELECT `NAZWA` FROM `SPIS`";
  3. $sql_result = mysql_query($sql,$connection) or die(mysql_error());
  4. while ($row = mysql_fetch_array($sql_result)) {
  5. $tabele=$row[NAZWA];
  6.  
  7. $sql2 = "SELECT `TEST` FROM `$tabele`";
  8. $sql_result2 = mysql_query($sql2,$connection) or die(mysql_error());
  9. while ($row2 = mysql_fetch_array($sql_result2)) {
  10. $nr=$row2[TEST];
  11. echo "nr $nr";
  12. }
  13. }
  14. ?>


Mogę także w pętli pojedyńczo przepytać tabele i sprawdzić czy są puste, jeśli nie, to pobieram dane. Nie wiem tylko jak wyświetlić wyniki z poniższego zapytania?
  1. <?php
  2. SELECT COUNT(*) FROM `$tabele`
  3. ?>


Mam nadzieję, że tym razem nic nie namieszałem.

Potrzebowałem łopatologicznego przykładu i wreszczcie znalazłem na stronie http://webmade.org/kursy-online/mysql_num_...-kurs-mysql.php

... ile wierszy zostało wybranych przez dane zapytanie. Możemy zliczać wybrane wiersze za pomocą funkcji PHP mysql_num_rows, która zwraca ilość wybranych wierszy za pomocą zapytania. Funkcję tą wykorzystujemy według następującego schematu:
  1. <?php
  2. $tresc_zapytania = "SELECT nazwa_pola FROM nazwa_tabeli WHERE warunek";
  3. $zapytanie = mysql_query($tresc_zapytania);
  4. $wiersze = mysql_num_rows($zapytanie);
  5. ?>

Jeśli wynik zerowy, to znaczy, że tabela pusta.

Wszystko powinno być tak proste, jak to tylko możliwe, ale nie prostsze.
Albert Einstein
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.