Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> export informacji z bazy danych
morarz
post
Post #1





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował morarz 25.03.2011, 22:11:09
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
darko
post
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Wklej strukturę tabel
Go to the top of the page
+Quote Post
morarz
post
Post #3





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

Ostrzeżenie: (0%)
-----


A o to struktura w mysql :

(IMG:http://wgrajfoto.pl/pokazfoto/img0311/min_tabele13da.jpg)

Talbela Informacja ma 5 pozycji czyli : ulica, kod, gmina, powiat, województwo danej firmy.

Ten post edytował morarz 25.03.2011, 22:33:27
Go to the top of the page
+Quote Post
darko
post
Post #4





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/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


Ten post edytował darko 25.03.2011, 22:39:45
Go to the top of the page
+Quote Post
morarz
post
Post #5





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
darko
post
Post #6





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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"

Ten post edytował darko 25.03.2011, 23:13:07
Go to the top of the page
+Quote Post
morarz
post
Post #7





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
darko
post
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Zdaje się za pomocą klasy phpExcelWriter
Go to the top of the page
+Quote Post
morarz
post
Post #9





Grupa: Zarejestrowani
Postów: 52
Pomógł: 0
Dołączył: 4.02.2011

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
darko
post
Post #10





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 12:20