Autor Zpráva
qwerty
Profil
Ahoj, neni na webu nějaké hotové řešení, kde si nastavím, jaké chci obsadit sloupce v db, a naimportuji je. Existuje něco takového? nebo nějaký jednoduchý import z txt nebo xls. Dělám si totiž Adressbook a už mám v excelu více jak 3000 kontaktů, - vždy id, jméno, příjmení, telefon. ale protože pokud přidávám do db ručně, tak tam je i adresa e-maily, poznámka, atd... to znamená že pomocí INSERT je relativně složité imporotvat. Nevím jak to udělat, ale snad mi někdo poradí. jde o to, jak to udělat, aby se automaticky importovalo více řádků do db. Díky querty
qwerty
Profil
nyní jsou například smyšlená čísla, ale je to v tomto formátu


NSERT INTO `addressbook` VALUES (82, 'Jaroslav', 'Kocourek', 'male', '', '', '111922655', '', '', '', 1, 'January', '', '', 'Vodafone');
INSERT INTO `addressbook` VALUES (83, 'Jaroslav', 'Malina', 'male', '', '', '111286521', '', 'fdgdfg', 'fg', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (84, 'Martin', 'Èihák', 'male', '', '', '181111125', '', '', '', 1, 'January', '', '', 'Vodafone');
INSERT INTO `addressbook` VALUES (85, 'Oldøich', 'Malý', 'male', '', '', '189661525', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (86, 'František', 'Coufal', 'male', '', '', '178998254', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (87, 'Jaroslav', 'Sládeèek', 'male', '', '', '148809820', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (88, 'Andrea', 'Stránská', 'female', '', '', '137288566', '', '', '', 1, 'January', '', '', 'O2');
INSERT INTO `addressbook` VALUES (89, 'Marie', 'Bloumanová', 'female', '', '', '104208778', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (91, 'Vladislav', 'Èapek', 'male', '', '', '199711122', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (92, 'Ilona ', 'Plecháèová', 'female', '', '', '2111780224', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (93, 'Petr', 'Šmídl', 'male', '', '', '101111147', '', '', '', 1, 'January', '', '', '');
INSE


a je to udělané v db tak, že id se po založení nevého účtu jakoby přičte. jde to udělat i při importu? díky


CREATE TABLE `addressbook` (
`id` int(9) unsigned NOT NULL auto_increment,
`firstname` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
`lastname` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
`gender` text character set latin1 collate latin1_general_ci NOT NULL,
`address` text character set latin1 collate latin1_general_ci NOT NULL,
`home` text character set latin1 collate latin1_general_ci NOT NULL,
`mobile` text character set latin1 collate latin1_general_ci NOT NULL,
`work` text character set latin1 collate latin1_general_ci NOT NULL,
`email` text character set latin1 collate latin1_general_ci NOT NULL,
`email2` text character set latin1 collate latin1_general_ci NOT NULL,
`bday` tinyint(2) NOT NULL default '0',
`bmonth` varchar(50) character set latin1 collate latin1_general_ci NOT NULL default '',
`byear` varchar(4) character set latin1 collate latin1_general_ci NOT NULL default '',
`comments` text character set latin1 collate latin1_general_ci NOT NULL,
`operator` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=116 ;
qwerty
Profil
nyní jsou například smyšlená čísla, ale je to v tomto formátu


NSERT INTO `addressbook` VALUES (82, 'Jaroslav', 'Kocourek', 'male', '', '', '111922655', '', '', '', 1, 'January', '', '', 'Vodafone');
INSERT INTO `addressbook` VALUES (83, 'Jaroslav', 'Malina', 'male', '', '', '111286521', '', 'fdgdfg', 'fg', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (84, 'Martin', 'Èihák', 'male', '', '', '181111125', '', '', '', 1, 'January', '', '', 'Vodafone');
INSERT INTO `addressbook` VALUES (85, 'Oldøich', 'Malý', 'male', '', '', '189661525', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (86, 'František', 'Coufal', 'male', '', '', '178998254', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (87, 'Jaroslav', 'Sládeèek', 'male', '', '', '148809820', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (88, 'Andrea', 'Stránská', 'female', '', '', '137288566', '', '', '', 1, 'January', '', '', 'O2');
INSERT INTO `addressbook` VALUES (89, 'Marie', 'Bloumanová', 'female', '', '', '104208778', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (91, 'Vladislav', 'Èapek', 'male', '', '', '199711122', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (92, 'Ilona ', 'Plecháèová', 'female', '', '', '2111780224', '', '', '', 1, 'January', '', '', '');
INSERT INTO `addressbook` VALUES (93, 'Petr', 'Šmídl', 'male', '', '', '101111147', '', '', '', 1, 'January', '', '', '');
INSE


a je to udělané v db tak, že id se po založení nevého účtu jakoby přičte. jde to udělat i při importu? díky


CREATE TABLE `addressbook` (
`id` int(9) unsigned NOT NULL auto_increment,
`firstname` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
`lastname` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
`gender` text character set latin1 collate latin1_general_ci NOT NULL,
`address` text character set latin1 collate latin1_general_ci NOT NULL,
`home` text character set latin1 collate latin1_general_ci NOT NULL,
`mobile` text character set latin1 collate latin1_general_ci NOT NULL,
`work` text character set latin1 collate latin1_general_ci NOT NULL,
`email` text character set latin1 collate latin1_general_ci NOT NULL,
`email2` text character set latin1 collate latin1_general_ci NOT NULL,
`bday` tinyint(2) NOT NULL default '0',
`bmonth` varchar(50) character set latin1 collate latin1_general_ci NOT NULL default '',
`byear` varchar(4) character set latin1 collate latin1_general_ci NOT NULL default '',
`comments` text character set latin1 collate latin1_general_ci NOT NULL,
`operator` varchar(255) character set latin1 collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=116 ;
qwerty
Profil
nebo jak navážu automatiicky na poslední id tzn AUTO_INCREMENT=116 ; díky..
Icka
Profil *
Pokud máš ty data v excelu, připravil bych si ta data jako csv soubor (data oddělená středníkem, čárkou apod....) a poté bych soubor načetl jako file(csv_soubor) // co řádek to záznam a pak každý ten řádek pomocí fce explode(";", $radek) bych oddělil jednotlivá data, která bych vkládal do DBA..

V databázi bych jednotlivé sloupce neřešil jako not null, páč máš spoustu inf. vynecháno... :-)

Increment se ti přičítá automaticky, pokud sloupec ID máš nastaveno:
id INT PRIMARY KEY AUTO_INCREMENT, takže v každém řádku sloupec id zapisuj třeba jako "", nebo prostě tam dej 0 :-)
Icka
Profil *
Ještě jsem zapoměl:
Když soubor načteš jako $soubor = file("soubor.dat"); nezapoměň, že jednotlivé řádky jsou pole!, takže než budeš chtít použít fnci explode(), použij foreach($soubor as $radek) { explode() }

No asi tak..

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: