Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: export informacji z bazy danych
Forum PHP.pl > Forum > Bazy danych > MySQL
morarz
Witam,

Mam taką struturę bazy danych i chciałbym ją za pomocą PHP najlepiej wyświetlić na stronie :

mam 2 tabele które chcę ładnie wyświetlić :

tabela pola_informacje zawiera:
id,fieldid,data_txt,itemid

168,1,Słowacka 32,18
169,2,01-546,18
170,3, Warszawa,18
2 tabela pola_firma zawiera:
itemid,title

18, Firma Zbyszko


I ta wartość '18' jest przypisana do dwóch tabel i chciałbym to wykorzystać i żeby w widoku wyglądało to tak :

Firma Zbyszko Słowacka 32 01-546 Warszawa

Za każdą pomoc dziękuje.

Może też to być w formi ekspotu CSV z bazy danych tylko jak wykonać dobrze zapytanie ?
darko
Wklej strukturę tabel
morarz
A o to struktura w mysql :



Talbela Informacja ma 5 pozycji czyli : ulica, kod, gmina, powiat, województwo danej firmy.
darko
Nie, nie, wklej sqla bez danych, samą strukturę. Obrazek nam wszystkiego nie powie. Powinno być coś w tym stylu (przy założeniu, że masz pozakładane klucze obce w ten sposób, w jaki myślę, że masz smile.gif ):

  1. SELECT
  2. title, data_text
  3. FROM pola_firma f, pola_informacje i
  4. WHERE
  5. f.itemid=i.itemid
  6. ORDER BY i.fieldid


lub

  1. SELECT
  2. title, data_text
  3. FROM pola_firma f, pola_informacje i
  4. WHERE
  5. f.itemid=i.itemid
  6. GROUP BY i.fieldid
morarz
Tabela z adresami wygląda tak :

  1. CREATE TABLE IF NOT EXISTS `tabela_adresy` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `fieldid` int(11) DEFAULT NULL,
  4. `data_txt` text,
  5. `data_bool` tinyint(1) DEFAULT NULL,
  6. `data_int` int(20) DEFAULT '0',
  7. `data_float` float DEFAULT '0',
  8. `data_char` varchar(255) NOT NULL,
  9. `itemid` int(11) DEFAULT NULL,
  10. `expiration` datetime DEFAULT NULL,
  11. PRIMARY KEY (`id`),
  12. KEY `itemid` (`itemid`)
  13. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3178 ;
  14.  
  15. --
  16. -- Zrzut danych tabeli `tabela_adresy`
  17. --
  18.  
  19. INSERT INTO `tabela_adresy` (`id`, `fieldid`, `data_txt`, `data_bool`, `data_int`, `data_float`, `data_char`, `itemid`, `expiration`) VALUES
  20. (168, 1, 'Wiejska 10', NULL, 0, 0, '', 18, '0000-00-00 00:00:00'),
  21. (169, 2, '01-154', NULL, 0, 0, '', 18, '0000-00-00 00:00:00'),
  22. (170, 3, 'Warszawa', NULL, 0, 0, '', 18, '0000-00-00 00:00:00'),
  23. (171, 4, 'Warszawski', NULL, 0, 0, '', 18, '0000-00-00 00:00:00'),
  24. (172, 5, 'MAZOWIECKIE', NULL, 0, 0, '', 18, '0000-00-00 00:00:00'),


Tabela z firmami wygląda tak :


  1. -- Struktura tabeli dla `tabela_firmy
  2. --
  3.  
  4. CREATE TABLE IF NOT EXISTS `tabela_firmy` (
  5. `itemid` int(11) NOT NULL AUTO_INCREMENT,
  6. `title` varchar(255) DEFAULT NULL,
  7. `hits` int(11) DEFAULT NULL,
  8. `visits` int(11) DEFAULT NULL,
  9. `published` tinyint(1) DEFAULT NULL,
  10. `confirm` tinyint(1) NOT NULL,
  11. `approved` tinyint(1) NOT NULL,
  12. `archived` tinyint(1) DEFAULT NULL,
  13. `publish_up` datetime DEFAULT NULL,
  14. `publish_down` datetime DEFAULT NULL,
  15. `checked_out` int(11) DEFAULT NULL,
  16. `checked_out_time` datetime NOT NULL,
  17. `ordering` int(11) DEFAULT NULL,
  18. `owner` int(11) NOT NULL,
  19. `icon` varchar(200) NOT NULL,
  20. `image` varchar(200) NOT NULL,
  21. `background` varchar(100) DEFAULT NULL,
  22. `options` text,
  23. `params` text,
  24. `ip` varchar(15) NOT NULL,
  25. `last_update` datetime NOT NULL,
  26. `updating_user` int(11) NOT NULL,
  27. `updating_ip` varchar(15) NOT NULL,
  28. `metakey` varchar(200) NOT NULL,
  29. `metadesc` text NOT NULL,
  30. PRIMARY KEY (`itemid`)
  31. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=438 ;
  32.  
  33. --
  34. -- Zrzut danych tabeli `tabela_firmy`
  35. --
  36.  
  37. INSERT INTO `tabela_firmy` (`itemid`, `title`, `hits`, `visits`, `published`, `confirm`, `approved`, `archived`, `publish_up`, `publish_down`, `checked_out`, `checked_out_time`, `ordering`, `owner`, `icon`, `image`, `background`, `options`, `params`, `ip`, `last_update`, `updating_user`, `updating_ip`, `metakey`, `metadesc`) VALUES
  38. (18, 'NTRAVEL', 11, NULL, 1, 0, 1, 0, '2011-02-16 11:03:40', '0000-00-00 00:00:00', 0, '0000-00-00 00:00:00', 0, 64, '', '18_img.jpg', 'pink.gif', '', '\ndef_cid = 740', '10.0.0.209', '2011-02-17 14:05:10', 64, '83.6.133.29', 'WCZASY, TURYSTYKA, WAKACJE, WYJAZD, WYCIECZKA, URLOP,', ''),


Może być tak ?
darko
W najprostszej formie możesz obrobić sobie wynik np. takiego zapytania:
  1. SELECT DISTINCT
  2. title, data_txt FROM tabela_firmy f, tabela_adresy i
  3. WHERE
  4. f.itemid=i.itemid
  5. ORDER BY i.fieldid


wynik:

"NTRAVEL","Wiejska 10"
"NTRAVEL","01-154"
"NTRAVEL","Warszawa"
"NTRAVEL","Warszawski"
"NTRAVEL","MAZOWIECKIE"

Można też ograniczyć typ wyświetlanych informacji do tylko samego adresu (pełnego):
  1. SELECT DISTINCT
  2. title, data_txt
  3. FROM tabela_firmy f, tabela_adresy i
  4. WHERE f.itemid = i.itemid
  5. AND i.fieldid IN(1,2,3)


wynik:
"NTRAVEL","Wiejska 10"
"NTRAVEL","01-154"
"NTRAVEL","Warszawa"
morarz
Hej działa pięknie wszystko DZIĘKI!!!

Hej,
A jak te dane można za pomocą php zapisac do pliku excel?

Żeby nie trzeba było wchodzić do PhpMyAdmin ?
darko
Zdaje się za pomocą klasy phpExcelWriter
morarz
wracając jeszcze do tego tematu da się wyciągnąć tylko informacje z danego miesiąca np. kwietnia, w bazie danych jest kolumna "publish_up" w której są dane w takiej postaci '2011-04-13 22:19:54'

Narazie te dane wyciągam w ten sposób :

SELECT DISTINCT title, data_txt, publish_up
FROM jos_sobi2_item f, jos_sobi2_fields_data i
WHERE f.itemid = i.itemid
AND i.fieldid
IN ( 1, 2, 3, 10, 14 )
ORDER BY title

Z góry dzięki za odpowiedz
darko
Poszedłbym na łatwiznę i zrobiłbym coś takiego dla kwietnia bieżącego roku (niewydajne ale powinno działać):

  1. SELECT DISTINCT title, data_txt, publish_up
  2. FROM jos_sobi2_item f, jos_sobi2_fields_data i
  3. WHERE f.itemid = i.itemid
  4. AND i.fieldid
  5. IN ( 1, 2, 3, 10, 14 )
  6. AND publish_up LIKE '2011-04-%'
  7. ORDER BY title
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.