Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как залить данные в базу (теория).
 
 автор: Worldmen   (25.10.2006 в 09:49)   письмо автору
 
 

Исходные данные : Апач, Мускул, БД - таблицы товар, фирмы, цена на товар.
CREATE TABLE price - табл по ценам на тоар
( fkeyt INT (10) , ссылка на товар в Tovar
fkeyf INT (10) , ссылка на фирму Firma
pr FLOAT (15) цена для этой фиры и для этого товара
)

CREATE TABLE firma (
idf INT (5),
fkey INT (5),
fname VARCHAR (50)
)

CREATE TABLE tovar (
idt INT (5) ,
name_tov VARCHAR (50)
)

Создал (локально) сайт - работает все.
Вопрос : так как в таблицу Товар будет заливаться куча различного товара (имя товара - уникальное) и для каждого вида товара в таблице Price будет своя цена. Руками забивать данные - умереть за клавой можно. Как теоретически сделать заливку данных?

   
 
 автор: Trianon   (25.10.2006 в 09:55)   письмо автору
 
   для: Worldmen   (25.10.2006 в 09:49)
 

Зависит от того, что является источником данных.
Например, разовый sql-дамп можно выполнить в phpMyAdmin.
Сsv-файл можно загрузить на сервер и импортировать. Или загрузить, разобрать и вставить построчно.

   
 
 автор: Worldmen   (25.10.2006 в 10:14)   письмо автору
 
   для: Trianon   (25.10.2006 в 09:55)
 

Т.е. загрузить данные у себя - локально, потом сделать дамп и залить его на сервере?
CSV-файл - что это такое (я новичок) - это файл дампа?

   
 
 автор: Trianon   (25.10.2006 в 10:26)   письмо автору
 
   для: Worldmen   (25.10.2006 в 10:14)
 

>Т.е. загрузить данные у себя - локально, потом сделать дамп и залить его на сервере?
Да. это один из вариантов.

>CSV-файл - что это такое (я новичок) - это файл дампа?
А это другой. CSV-файл - один из форматов представления табличных данных, в частности листов Excel.

   
 
 автор: Worldmen   (25.10.2006 в 11:28)   письмо автору
 
   для: Trianon   (25.10.2006 в 10:26)
 

В PhpMyadmine создал экспорт. Он создал sql файл в котором такие данные:

#
# Дамп данных таблицы `price`
#
INSERT INTO price VALUES (2, 1, '64.65');
INSERT INTO price VALUES (3, 1, '156.25');
INSERT INTO price VALUES (1, 2, '1001.58');

#
# Дамп данных таблицы `tovar`
#

INSERT INTO tovar VALUES (1, 'Супер пупер компьютер', 'http://.../web/img/pc.jpg', NULL);
INSERT INTO tovar VALUES (2, 'унитаз', 'http://.../web/img/un.jpg', NULL);
INSERT INTO tovar VALUES (3, 'раковина', 'http://...../web/img/un.jpg', NULL);

А насчет CSV - ничего не нашел (версия phpMyAdmin 2.4.0)

   
 
 автор: elenaki   (25.10.2006 в 11:31)   письмо автору
 
   для: Worldmen   (25.10.2006 в 11:28)
 

CM. attach

   
 
 автор: Trianon   (25.10.2006 в 11:35)   письмо автору
 
   для: Worldmen   (25.10.2006 в 11:28)
 

Теперь в phpMyAdmin, но уже на сервере, в разделах SQL или IMPORT этот дамп можно выполнить.

   
 
 автор: Worldmen   (25.10.2006 в 12:07)   письмо автору
 
   для: Trianon   (25.10.2006 в 11:35)
 

Я еще не спрашивал у провайдеров там где собираюсь разместить свой сайт (в zp.ua) - какие у них есть формы для работы с БД. Я так понимяю phpMyAdmin - должен быть.
Скачал новую версию phpMyAdmin 2.9 - там есть CSV.
Но проблема осталась - ведь я буду ручками забивать влокальную базу. Т.е. таблице Товар должны быть уникальные наименование товара, чтобы можно было ссылаться на один и тот же товар (например: в бытовой технике многие фирмы продают одинаковые товары) , но с разной ценой.
Получается мне нужно создать скрипт для анализа или скрипт который будет отображать данные в табличной форме из которой я могу выбирать определенные товары и назначать им цену и фирму в которой они продаются.

   
 
 автор: elenaki   (25.10.2006 в 12:12)   письмо автору
 
   для: Worldmen   (25.10.2006 в 12:07)
 

для уникальности значений и более быстрого поиска используют поле id (INT(10), auto_increment).

   
 
 автор: Worldmen   (25.10.2006 в 12:25)   письмо автору
 
   для: elenaki   (25.10.2006 в 12:12)
 

Да, я использую это поле, но имена товара всеравно должно быть уникальным. Можно для каждой фирмы заливать свое, но БД сильно разрастется.
Еще : попробовал сделать экспорт в sql файл, получил :

-- phpMyAdmin SQL Dump
-- version 2.9.0.2
-- http://www.phpmyadmin.net
-- 
-- Хост: localhost
-- Время создания: Окт 25 2006 г., 09:16
-- Версия сервера: 4.0.13
-- Версия PHP: 4.1.1
-- 
-- База данных: `web`
-- 

-- Дамп данных таблицы `price`
-- 
REPLACE INTO `price` (`fkeyt`, `fkeyf`, `pr`) VALUES 
(2, 1, 164.65),
(3, 1, 2156.25),
(1, 2, 3001.58);


Сделал импорт из этого файла , а омругается:
Warning: Cannot add header information - headers already sent by (output started at c:\web\track\wfsearch\www\phpmyadmin\libraries\header_meta_style.inc.php:27) in c:\web\track\wfsearch\www\phpmyadmin\libraries\common.lib.php on line 1154
Хотя данные залились.

Странно, делал REPLACE (т.е. - замена), а получилось записи просто добавились. Почему ?

   
 
 автор: Trianon   (25.10.2006 в 13:54)   письмо автору
 
   для: Worldmen   (25.10.2006 в 12:25)
 

replace заменяет строки только при совпадении PRIMARY KEY

   
 
 автор: Worldmen   (25.10.2006 в 16:13)   письмо автору
 
   для: Trianon   (25.10.2006 в 13:54)
 

Получается надо добавить поле типа Primary.

   
 
 автор: Alph[p]a   (25.10.2006 в 10:00)   письмо автору
 
   для: Worldmen   (25.10.2006 в 09:49)
 

Сделай админку и заливай
Примерно так:

...
$q="INSERT INTO price (fkeyt,...) VALUES ('$_POST[fkeyt]',....) " ;
mysql_query($q,$connect);
...

   
 
 автор: tuder   (25.10.2006 в 12:31)   письмо автору
 
   для: Worldmen   (25.10.2006 в 09:49)
 

>Вопрос : так как в таблицу Товар будет заливаться куча различного товара (имя товара - уникальное) и для каждого вида товара в таблице Price будет своя цена. Руками забивать данные - умереть за клавой можно. Как теоретически сделать заливку данных?

Где хранятся эти данные? В какой-то торговой программе? Типа 1С?
Сделать вывод в файл в каком-то формате. Вплоть до sql-запросов.
Потом заливать файл на сайт, там его построчно считывать и выполнять.

$result = mysql_query($string);

   
 
 автор: Worldmen   (25.10.2006 в 13:33)   письмо автору
 
   для: tuder   (25.10.2006 в 12:31)
 

Данные будут собираться по зазным фирмам. и поэтому я незнаю в каком виде они мне будут давать.
Можно конечно указать пару видов предоставляемых мне данных. Думаю - это правильно.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования