Excel oszlop több elemének importálása MySQL
2014-11-19T15:51:37+01:00
2014-11-21T09:49:42+01:00
2022-08-09T06:05:29+02:00
kastel
Sziasztok!

A problémám a következő.
Kaptam egy excel táblát. Ezt konvertáltam csv fájlba, hogy tudjam importálni a mysql adatbázisba. 

1,Bagi Andras,Kishomok,Doza Derd 47.,802034000423,2411954820030,,BUZA,2.6870,6.9402,"41,641.20",08.05.2014.,417,"20,850.00",04.08.2014.,,,, ,,,,,,,KUKORICA,2.9658,,,,,,,,,, ,,,,,,,LUCERNA,1.1946,,,,,,,,,, ,,,,,,,ALMA,0.0928,,,,,,,,,,
Ilyen formában kapom meg a csv fájlt. Amikor importálom akkor azt az oszlopot, amiben több elem van, tehát ahol van a kukorica, lucerna stb azt egymás alatti sorba teszi be az adatbázisba egy sorszám alá. A gondom az, hogy ha akarok sql lekérdezést végezni, hogy pl egy termelő milyen kultúrákat termel, akkor mindig csak az első növényt írja ki, itt pl a búzát.
Az lenne a kérdésem, hogy hogyan tudnám megoldani, hogy az összes növényt kiírja ami a termelőhöz tartozik?

Köszönöm!
Mutasd a teljes hozzászólást!
Megszületett

1. lépés Az azonosítóval rendelkező mezők átválogatása a két problémás mező kihagyásával egy másik táblába create table proba2 SELECT rbr,ime,mesto,adresa,bpg,jmbg,teleofon,ukupno,podsticaj,datum,nafta, iznos,datum2,dubrivo,iznos2,datum3,`ukupno podsticaj` FROM `proba` where rbr<>'' 2. lépés Létrehozunk egy kapcsolótáblát ahová a termények fognak kerülni a gazdák azonosítóival create table proba_kapcs(rbr int,kultura varchar(50),povrsina varchar(50); 3. lépés Csinálunk egy segédfüggvényt amely betöltés közben előállítja a szükséges azonosítót a tábla részére (ha '' paraméter jön a már beszúrtak maximumát adja,ha nem akkor a bejövőt. DELIMITER // CREATE FUNCTION getlasttableid(n varchar(20)) RETURNS VARCHAR(20) BEGIN DECLARE s int; select max(rbr) into s from proba_kapcs; IF n ='' THEN RETURN s; ELSE RETURN n; END IF; END // DELIMITER ; 4.lépés A függvény segítségével beleválogatjuk a kapcsolótáblába a terményeket, melyekhez most már mind van azonosító insert into proba_kapcs (select getlasttableid(rbr),kultura,povrsina FROM `proba`) 5. lépés előállt a proba2 tábla amiben már nincs a kultura és a povrsina mező viszont van egy proba_kapcs táblánk ami a proba2 tábla rbr azonosítóihoz kapcsolódik. select t1.*,(select group_concat(kultura) from proba_kapcs t2 where t2.rbr=t1.rbr) as kultura ,(select group_concat(povrsina) from proba_kapcs t3 where t3.rbr=t1.rbr) as povrsina from proba2 t1
Mutasd a teljes hozzászólást!

  • Exportáld ki a táblát amit létrehoztál (ne csv be) és tedd ki ide addig nem sok mindent tudunk mondani amíg nem látjuk.
    Mutasd a teljes hozzászólást!
  • -- phpMyAdmin SQL Dump -- version 2.11.6 -- http://www.phpmyadmin.net -- -- Hoszt: localhost -- Létrehozás ideje: 2014. Nov 20. 11:54 -- Szerver verzió: 5.0.51 -- PHP Verzió: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Adatbázis: `falugazda` -- -- -------------------------------------------------------- -- -- Tábla szerkezet: `proba` -- CREATE TABLE `proba` ( `rbr` int(11) NOT NULL, `ime` varchar(32) collate utf8_unicode_ci NOT NULL, `adresa` varchar(32) collate utf8_unicode_ci NOT NULL, `mesto` varchar(32) collate utf8_unicode_ci NOT NULL, `bpg` varchar(32) collate utf8_unicode_ci NOT NULL, `jmbg` varchar(32) collate utf8_unicode_ci NOT NULL, `teleofn` varchar(32) collate utf8_unicode_ci NOT NULL, `kultura` varchar(32) collate utf8_unicode_ci NOT NULL, `povrsina` varchar(32) collate utf8_unicode_ci NOT NULL, `ukupno` varchar(32) collate utf8_unicode_ci NOT NULL, `podsticaj` varchar(32) collate utf8_unicode_ci NOT NULL, `datum` varchar(32) collate utf8_unicode_ci NOT NULL, `nafa` varchar(32) collate utf8_unicode_ci NOT NULL, `iznos` varchar(32) collate utf8_unicode_ci NOT NULL, `datum2` varchar(32) collate utf8_unicode_ci NOT NULL, `dubrivo` varchar(32) collate utf8_unicode_ci NOT NULL, `iznos2` varchar(32) collate utf8_unicode_ci NOT NULL, `datum3` varchar(32) collate utf8_unicode_ci NOT NULL, `ukupno podsticaj` varchar(32) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`rbr`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- Tábla adatok: `proba` -- INSERT INTO `proba` (`rbr`, `ime`, `adresa`, `mesto`, `bpg`, `jmbg`, `teleofn`, `kultura`, `povrsina`, `ukupno`, `podsticaj`, `datum`, `nafa`, `iznos`, `datum2`, `dubrivo`, `iznos2`, `datum3`, `ukupno podsticaj`) VALUES (0, '', '', '', '', '', '', 'S.JE?AM', '0.6493', '', '', '', '', '', '', '', '', '', ''), (1, 'Ago?ton Zoltan', 'Mali Pesak', 'Do?a ?er? 24.', '802026002218', '0501977820021', '063-89-13-195', 'KUKURUZ', '3.2872', '3.9365', '23,619.00', '09.05.2014.', '236', '11,800.00', '25.06.2014.', '800', '8,000.00', '25.06.2014.', '43,419.00'), (2, 'Bagi Andra?', 'Mali Pesak', 'Do?a ?er? 47.', '802034000423', '2411954820030', '', 'P?ENICA', '2.6870', '6.9402', '41,641.20', '08.05.2014.', '417', '20,850.00', '04.08.2014.', '', '', '', ''), (3, 'Bagi I?tvan', 'Mali Pesak', 'Petefi ?andor 10.', '802034000520', '1207946820021', '', 'KUKURUZ', '0.5059', '0.5059', '3,035.40', '09.05.2014.', '30', '1,500.00', '20.08.2014.', '', '', '', ''), (4, 'Bagi I?tvan', 'Mali Pesak', 'Petefi ?andora 10.', '802034000687', '1812987820002', '', 'KUKURUZ', '2.5051', '4.3151', '25,890.60', '09.05.2014.', '260', '13,000.00', '20.08.2014.', '1200', '12,000.00', '20.08.2014.', '50,890.60'), (5, 'Berenji Antal', 'Mali Pesak', 'Slatina 12.', '802034000466', '0106957820045', '063-19-80-425', 'P?ENICA', '4.0127', '9.2390', '55,434.00', '09.05.2014.', '554', '27,700.00', '26.06.2014.', '', '', '', ''), (6, 'Bu? Jo?ef', 'Mali Pesak', 'Slatina 18.', '802018001291', '1508967820056', '063-167-75-78', 'KUKURUZ', '2.5211', '2.5211', '15,126.60', '09.05.2014.', '151', '7,550.00', '09.05.2014.', '', '', '', ''), (7, 'Berta Ro?a', 'Mali Pesak', 'Brastva i Jed. 61a.', '802026003389', '0806942827509', 'NEMA', 'P?ENICA', '2.0597', '2.0597', '12,358.20', '09.05.2014.', '120', '6,000.00', '25.06.2014.', '', '', '', ''), (8, 'Foga? Ilonka', 'Mali Pesak', 'Republikanska 11', '802034000628', '2211950825047', '063-8-675-552', 'P?ENICA', '2.1144', '4.8380', '29,028.00', '09.05.2014.', '290', '14,500.00', '04.08.2014.', '1500', '15,000.00', '09.05.2014.', '58,528.00'), (9, 'Foga? Vendel', 'Mali Pesak', 'Republikanska 11', '802034000610', '0807974820030', '063-8-675-552', 'P?ENICA', '0.6326', '14.4910', '86,946.00', '09.05.2014.', '870', '43,500.00', '04.08.2014.', '3500', '35,000.00', '09.05.2014.', '165,446.00'), (10, 'Hajbel Imre', 'Mali Pesak', 'Republikanska 19.', '802034000113', '0507949820049', '', 'P?ENICA', '7.3563', '18.4128', '110,476.80', '09.05.2014.', '1105', '55,250.00', '19.06.2014.', '2980', '29,800.00', '09.05.2014.', '195,526.80'), (11, 'Ki??agi Mihalj', 'Mali Pesak', 'Slatina 11.', '802034000385', '2605951820047', 'NEMA', 'P?ENICA', '1.0671', '4.6389', '27,833.40', '09.05.2014.', '279', '13,950.00', '15.07.2014.', '600', '6,000.00', '15.07.2014.', '47,783.40'), (12, 'Konc Robert', 'Mali Pesak', 'Petefi ?andor 5.', '802034000164', '0506972820025', '', 'KUKURUZ', '8.9766', '8.9766', '53,859.60', '09.05.2014.', '404', '20,200.00', '27.06.2014.', '', '', '', ''), (13, 'Kenjere? ?ula', 'Mali Pesak', 'Do?a ?er? 44.', '802034000334', '1504944820126', '', 'P?ENICA', '1.0257', '4.7777', '28,666.20', '07.05.2014.', '286', '14,300.00', '25.06.2014.', '', '', '', ''), (14, 'Kreku?ka Karolj', 'Mali Pesak', 'Slatina 14.', '802034000091', '1507936820019', 'NEMA', 'P?ENICA', '0.9416', '2.9858', '17,914.80', '09.05.2014.', '180', '9,000.00', '22.08.2014.', '', '', '', ''), (15, 'Na? Vilmo?', 'Mali Pesak', 'Do?a ?er? 39.', '802034000130', '1706937820015', '062-15-84-326', 'P?ENICA', '0.5968', '2.2814', '13,688.40', '09.05.2014.', '', '', '', '', '', '', ''), (16, 'Nogradi Fri?e?', 'Mali Pesak', 'Republikanska 7.', '802034000059', '2111957820070', '063-8-520-091', 'P?ENICA', '0.4332', '11.0328', '66,196.80', '09.05.2014.', '662', '33,100.00', '19.06.2014.', '3310', '33,100.00', '19.05.2014.', '102,606.80'), (17, 'Pap Andra?', 'Mali Pesak', 'Slatina 19.', '802034000547', '0910943820038', '061-62-90-241', 'P?ENICA', '2.3387', '6.5973', '39,583.80', '09.05.2014.', '', '', '', '', '', '', ''), (18, 'Pap Dene?', 'Mali Pesak', 'Republikanska 14.', '802034000695', '2903947820068', '', 'P?ENICA', '0.5681', '0.5681', '3,408.60', '22.05.2014.', '', '', '', '', '', '', ''), (19, 'Pernjes Malvinka', 'Mali Pesak', 'Petefi ?andor 8.', '802034000270', '1506952825024', '064-39-12-958', 'P?ENICA', '7.0851', '12.6367', '75,820.20', '09.05.2014.', '', '', '', '1050', '10,500.00', '09.05.2014.', ''), (20, 'Rada Andra?', 'Mali Pesak', 'Do?a ?er? 15.', '802034000202', '1805933820019', '063-88-88-774', 'KUKURUZ', '2.2158', '2.2158', '13,294.80', '09.05.2014.', '', '', '', '', '', '', ''), (21, '?or? Norbert', 'Mali Pesak', 'Petefi ?andor bb.', '802034000296', '2208985820403', '882-007', 'P?ENICA', '9.7763', '27.2469', '163,481.40', '09.05.2014.', '1635', '81,750.00', '25.06.2014.', '', '', '', ''), (22, '?or? Rudolf', 'Mali Pesak', 'Do?a ?er? 45.', '802034000350', '2810965820018', '063-7-495-653', 'P?ENICA', '0.9667', '6.0468', '36,280.80', '09.05.2014.', '360', '18,000.00', '23.06.2014.', '500', '5,000.00', '08.09.2014.', '59,280.80'), (23, 'Sabo Antal', 'Mali Pesak', 'Do?a ?er? 30.', '802034000121', '1206953820030', '882-329', 'KUKURUZ', '4.2505', '11.8485', '71,091.00', '15.05.2014.', '711', '35,550.00', '21.05.2014.', '1000', '10,000.00', '21.05.2014.', '116,641.00'), (24, 'Sabo Iren', 'Mali Pesak', 'Do?a ?er?a 30.', '802034000555', '1903932825027', 'NEMA', 'S.JE?AM', '0.8300', '0.8300', '4,980.00', '15.05.2014.', '', '', '', '', '', '', ''), (25, 'Sebenji Lajo?', 'Mali Pesak', 'Republikanska 6.', '802034000148', '1005964820029', '063-7-058-651', 'P?ENICA', '0.8727', '4.6971', '28,182.60', '09.05.2014.', '240', '12,000.00', '09.05.2014.', '300', '3,000.00', '08.07.2014.', '43,182.60'), (26, 'Sebenji Laslo', 'Mali Pesak', 'Do?a ?er? 31.', '802034000482', '2002949820041', '063-84-95-491', 'P?ENICA', '2.3248', '9.0038', '54,022.80', '09.05.2014.', '332', '16,600.00', '19.06.2014.', '', '', '', ''), (27, 'Se?i Edit', 'Mali Pesak', 'Petefi ?andor 9.', '802034000083', '0810966825016', '882-332', 'P?ENICA', '5.4541', '32.7299', '196,379.40', '09.05.2014.', '', '', '', '', '', '', ''), (28, 'Vajdovi? Rozalija', 'Mali Pesak', 'Slatina 10.', '802034000369', '0201945825036', '063 80 40 328', 'P?ENICA', '2.6806', '7.2124', '43,274.40', '09.05.2014.', '420', '21,000.00', '30.06.2014.', '', '', '', ''), (29, 'Vi?njei ?er?', 'Mali Pesak', 'Do?a ?er? 43.', '802034000440', '2903943820055', '063-7-495-653', 'S.JE?AM', '0.8144', '4.6107', '27,664.20', '09.05.2014.', '', '', '', '500', '5,000.00', '09.05.2014.', '');
    Ez a teljes tábla.
    Mutasd a teljes hozzászólást!
  • Én ebben a táblában csak 1 sort látok ahol a név Bagi András és nála is csak PSENICA (búza) van. Hol az a 3 plusz sor ahol látszik hogy kukoricát, lucernat és almát is termeszt?

    A group_concat aggregát függvény felhasználásával lehet különben lekérdezi hogy ki miket termeszt
    például

    SELECT ime,group_concat(kultura)  FROM `proba` group by ime

    persze ilyenkor probléma lehet ha van 2 azonos nevű ember aki mást termeszt. Nem ártana normalizálni az adatbázist, hogy az id egyértelműen meghatározza az embert és kapcsolótáblában lenne például hogy miket termel.
    Mutasd a teljes hozzászólást!
  • Elnézést kérek, az adatbázisnak azt a fajtáját akartam exportálni amiben nincs kulcsnak megadva egy mező sem, csak siettem és az előző próbálgatásom eredményét küldtem el. Ez a kód a jó:

    -- phpMyAdmin SQL Dump -- version 2.11.6 -- http://www.phpmyadmin.net -- -- Hoszt: localhost -- Létrehozás ideje: 2014. Nov 20. 12:55 -- Szerver verzió: 5.0.51 -- PHP Verzió: 5.2.6 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; -- -- Adatbázis: `falugazda` -- -- -------------------------------------------------------- -- -- Tábla szerkezet: `proba` -- CREATE TABLE `proba` ( `rbr` varchar(32) collate utf8_unicode_ci NOT NULL, `ime` varchar(32) collate utf8_unicode_ci NOT NULL, `mesto` varchar(32) collate utf8_unicode_ci NOT NULL, `adresa` varchar(32) collate utf8_unicode_ci NOT NULL, `bpg` varchar(32) collate utf8_unicode_ci NOT NULL, `jmbg` varchar(32) collate utf8_unicode_ci NOT NULL, `teleofon` varchar(32) collate utf8_unicode_ci NOT NULL, `kultura` varchar(32) collate utf8_unicode_ci NOT NULL, `povrsina` varchar(32) collate utf8_unicode_ci NOT NULL, `ukupno` varchar(32) collate utf8_unicode_ci NOT NULL, `podsticaj` varchar(32) collate utf8_unicode_ci NOT NULL, `datum` varchar(32) collate utf8_unicode_ci NOT NULL, `nafta` varchar(32) collate utf8_unicode_ci NOT NULL, `iznos` varchar(32) collate utf8_unicode_ci NOT NULL, `datum2` varchar(32) collate utf8_unicode_ci NOT NULL, `dubrivo` varchar(32) collate utf8_unicode_ci NOT NULL, `iznos2` varchar(32) collate utf8_unicode_ci NOT NULL, `datum3` varchar(32) collate utf8_unicode_ci NOT NULL, `ukupno podsticaj` varchar(32) collate utf8_unicode_ci NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; -- -- Tábla adatok: `proba` -- INSERT INTO `proba` (`rbr`, `ime`, `mesto`, `adresa`, `bpg`, `jmbg`, `teleofon`, `kultura`, `povrsina`, `ukupno`, `podsticaj`, `datum`, `nafta`, `iznos`, `datum2`, `dubrivo`, `iznos2`, `datum3`, `ukupno podsticaj`) VALUES ('1', 'Ago?ton Zoltan', 'Mali Pesak', 'Do?a ?er? 24.', '802026002218', '0501977820021', '063-89-13-195', 'KUKURUZ', '3.2872', '3.9365', '23,619.00', '09.05.2014.', '236', '11,800.00', '25.06.2014.', '800', '8,000.00', '25.06.2014.', '43,419.00'), ('', '', '', '', '', '', '', 'S.JE?AM', '0.6493', '', '', '', '', '', '', '', '', '', ''), ('2', 'Bagi Andra?', 'Mali Pesak', 'Do?a ?er? 47.', '802034000423', '2411954820030', '', 'P?ENICA', '2.6870', '6.9402', '41,641.20', '08.05.2014.', '417', '20,850.00', '04.08.2014.', '', '', '', ''), ('', '', '', '', '', '', '', 'KUKURUZ', '2.9658', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'LUCERKA', '1.1946', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'JABUKA', '0.0928', '', '', '', '', '', '', '', '', '', ''), ('3', 'Bagi I?tvan', 'Mali Pesak', 'Petefi ?andor 10.', '802034000520', '1207946820021', '', 'KUKURUZ', '0.5059', '0.5059', '3,035.40', '09.05.2014.', '30', '1,500.00', '20.08.2014.', '', '', '', ''), ('4', 'Bagi I?tvan', 'Mali Pesak', 'Petefi ?andora 10.', '802034000687', '1812987820002', '', 'KUKURUZ', '2.5051', '4.3151', '25,890.60', '09.05.2014.', '260', '13,000.00', '20.08.2014.', '1200', '12,000.00', '20.08.2014.', '50,890.60'), ('', '', '', '', '', '', '', 'S.JE?AM', '1.8100', '', '', '', '', '', '', '', '', '', ''), ('5', 'Berenji Antal', 'Mali Pesak', 'Slatina 12.', '802034000466', '0106957820045', '063-19-80-425', 'P?ENICA', '4.0127', '9.2390', '55,434.00', '09.05.2014.', '554', '27,700.00', '26.06.2014.', '', '', '', ''), ('', '', '', '', '', '', '', 'KUKURUZ', '3.2640', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'S.JE?AM', '0.5818', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'PROSO', '0.6262', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'LUCERKA', '0.5437', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'K.KROMPIR', '0.1396', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'JABUKA', '0.0319', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', '?LJIVE', '0.0400', '', '', '', '', '', '', '', '', '', ''), ('6', 'Bu? Jo?ef', 'Mali Pesak', 'Slatina 18.', '802018001291', '1508967820056', '063-167-75-78', 'KUKURUZ', '2.5211', '2.5211', '15,126.60', '09.05.2014.', '151', '7,550.00', '09.05.2014.', '', '', '', ''), ('7', 'Berta Ro?a', 'Mali Pesak', 'Brastva i Jed. 61a.', '802026003389', '0806942827509', 'NEMA', 'P?ENICA', '2.0597', '2.0597', '12,358.20', '09.05.2014.', '120', '6,000.00', '25.06.2014.', '', '', '', ''), ('8', 'Foga? Ilonka', 'Mali Pesak', 'Republikanska 11', '802034000628', '2211950825047', '063-8-675-552', 'P?ENICA', '2.1144', '4.8380', '29,028.00', '09.05.2014.', '290', '14,500.00', '04.08.2014.', '1500', '15,000.00', '09.05.2014.', '58,528.00'), ('', '', '', '', '', '', '', 'KUKURUZ', '1.9636', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'OVAS', '0.7600', '', '', '', '', '', '', '', '', '', ''), ('9', 'Foga? Vendel', 'Mali Pesak', 'Republikanska 11', '802034000610', '0807974820030', '063-8-675-552', 'P?ENICA', '0.6326', '14.4910', '86,946.00', '09.05.2014.', '870', '43,500.00', '04.08.2014.', '3500', '35,000.00', '09.05.2014.', '165,446.00'), ('', '', '', '', '', '', '', 'KUKURUZ', '9.1772', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'LUCERKA', '4.6812', '', '', '', '', '', '', '', '', '', ''), ('10', 'Hajbel Imre', 'Mali Pesak', 'Republikanska 19.', '802034000113', '0507949820049', '', 'P?ENICA', '7.3563', '18.4128', '110,476.80', '09.05.2014.', '1105', '55,250.00', '19.06.2014.', '2980', '29,800.00', '09.05.2014.', '195,526.80'), ('', '', '', '', '', '', '', 'KUKURUZ', '4.8667', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'OVAS', '0.7580', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'LUCERKA', '0.4149', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'K.KROMPIR', '1.8307', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'K.CRNI LUK', '0.0706', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'GRA?AK', '0.0409', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'OST.KOR.POV.', '0.0335', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'PAPRIKA', '2.1892', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'JABUKA', '0.5244', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'BRESKVA I N.', '0.2403', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'GAJ. CVE?E', '0.0873', '', '', '', '', '', '', '', '', '', ''), ('11', 'Ki??agi Mihalj', 'Mali Pesak', 'Slatina 11.', '802034000385', '2605951820047', 'NEMA', 'P?ENICA', '1.0671', '4.6389', '27,833.40', '09.05.2014.', '279', '13,950.00', '15.07.2014.', '600', '6,000.00', '15.07.2014.', '47,783.40'), ('', '', '', '', '', '', '', 'KUKURUZ', '2.5414', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'LUCERKA', '1.0021', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '', '', '', '', 'K.KROMPIR', '0.0283', '', '', '', '', '', '', '', '', '', ''), ('12', 'Konc Robert', 'Mali Pesak', 'Petefi ?andor 5.', '802034000164', '0506972820025', '', 'KUKURUZ', '8.9766', '8.9766', '53,859.60', '09.05.2014.', '404', '20,200.00', '27.06.2014.', '', '', '', ''), ('13', 'Kenjere? ?ula', 'Mali Pesak', 'Do?a ?er? 44.', '802034000334', '1504944820126', '', 'P?ENICA', '1.0257', '4.7777', '28,666.20', '07.05.2014.', '286', '14,300.00', '25.06.2014.', '', '', '', ''), ('', '', '', '', '', '', '', 'KUKURUZ', '2.8030', '', '', '', '', '', '', '', '', '', ''), ('', '', '', '',
    Mutasd a teljes hozzászólást!
  • Megszületett

    1. lépés Az azonosítóval rendelkező mezők átválogatása a két problémás mező kihagyásával egy másik táblába create table proba2 SELECT rbr,ime,mesto,adresa,bpg,jmbg,teleofon,ukupno,podsticaj,datum,nafta, iznos,datum2,dubrivo,iznos2,datum3,`ukupno podsticaj` FROM `proba` where rbr<>'' 2. lépés Létrehozunk egy kapcsolótáblát ahová a termények fognak kerülni a gazdák azonosítóival create table proba_kapcs(rbr int,kultura varchar(50),povrsina varchar(50); 3. lépés Csinálunk egy segédfüggvényt amely betöltés közben előállítja a szükséges azonosítót a tábla részére (ha '' paraméter jön a már beszúrtak maximumát adja,ha nem akkor a bejövőt. DELIMITER // CREATE FUNCTION getlasttableid(n varchar(20)) RETURNS VARCHAR(20) BEGIN DECLARE s int; select max(rbr) into s from proba_kapcs; IF n ='' THEN RETURN s; ELSE RETURN n; END IF; END // DELIMITER ; 4.lépés A függvény segítségével beleválogatjuk a kapcsolótáblába a terményeket, melyekhez most már mind van azonosító insert into proba_kapcs (select getlasttableid(rbr),kultura,povrsina FROM `proba`) 5. lépés előállt a proba2 tábla amiben már nincs a kultura és a povrsina mező viszont van egy proba_kapcs táblánk ami a proba2 tábla rbr azonosítóihoz kapcsolódik. select t1.*,(select group_concat(kultura) from proba_kapcs t2 where t2.rbr=t1.rbr) as kultura ,(select group_concat(povrsina) from proba_kapcs t3 where t3.rbr=t1.rbr) as povrsina from proba2 t1
    Mutasd a teljes hozzászólást!
  • Persze az sql beli bűvészkedések is elkerülhetőek ha a leírtakhoz hasonló módon magát a kapott hibás csv fájlt olvasod soronként  és a mezőket az sql ben leírtakhoz hasonló módon szétválogatod és két csv fájlba kiírod, majd azt importálod be.
    Mutasd a teljes hozzászólást!
  • $handle = fopen("c:/folder/export.csv", "r"); $handle2 = fopen("c:/folder/gazdak.csv", "w"); $handle3 = fopen("c:/folder/termenyek.csv", "w"); $actid=0; while (!feof($handle)) { $sor = fgets($sock); $mezok =explode(",",$sor); if ($mezok[0] !="") { $actid=$mezok[0]; for ($i=0;$i<count($mezok);$i++) if (($i<7)||($i>8)) { fwrite($handle2,$mezok[$i]); if ($i !=count($mezok)-1) fwrite($handle2,","); } fwrite($handle2,"\n"); } else { fwrite($handle3,$actid.",".$mezok[7].",".$mezok[8]."\n"); } } fclose($handle); fclose($handle2); fclose($handle3);
    Mutasd a teljes hozzászólást!
  • Kimaradt egy sor

    handle = fopen("c:/folder/export.csv", "r"); $handle2 = fopen("c:/folder/gazdak.csv", "w"); $handle3 = fopen("c:/folder/termenyek.csv", "w"); $actid=0; while (!feof($handle)) { $sor = fgets($sock); $mezok =explode(",",$sor); if ($mezok[0] !="") { $actid=$mezok[0]; for ($i=0;$i<count($mezok);$i++) if (($i<7)||($i>8)) { fwrite($handle2,$mezok[$i]); if ($i !=count($mezok)-1) fwrite($handle2,","); } fwrite($handle3,$actid.",".$mezok[7].",".$mezok[8]."\n"); fwrite($handle2,"\n"); } else { fwrite($handle3,$actid.",".$mezok[7].",".$mezok[8]."\n"); } } fclose($handle); fclose($handle2); fclose($handle3);
    Mutasd a teljes hozzászólást!
  • Köszönöm, köszönöm, köszönöm, nagyon-nagyon. Az első módszerrel csináltam és ment. Nagyon köszönöm a magyarázatot is, hogy ezt is megismerhettem. Örök hála! :)
    Mutasd a teljes hozzászólást!
abcd