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

Форум MySQL

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

 

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

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

тема: импорт excel в mysql
 
 автор: AlinaAG   (23.07.2007 в 10:01)   письмо автору
 
 

Привет!
Прошу помощи насчет импорта данных из excel в mysql. Задача: 8 параметров (Например имя, адрес, телефон и т.д.). Много элементов списка, причем они должны выводится как по группам (например группа из 40 элементов с 8 параметрами, всего групп 15), но с меньшим кол-вом параметров, так и отдельно - но со всем 8-ю параметрами. Как это сделать? Просто теория, с чего начать? Для каждой группы создавать отдельную таблицу? В общем я в расстерянности, только начинаю изучать php =(
php 5.2.3, apache 2.0.59, mysql 4.1
Помогите плиз=)

   
 
 автор: afdm   (23.07.2007 в 10:22)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 10:01)
 

Я тут недавно занимался импортом из Access'a в MySQL.
MySQL Migration Toolkit. Попробую что-нить там поискать........ если есть возможность сначала переведи всё в аксесс, а затем уже в sql........

   
 
 автор: AlinaAG   (23.07.2007 в 10:29)   письмо автору
 
   для: afdm   (23.07.2007 в 10:22)
 

Пасиб! Есть идеи как это всё реализовать?? В том плане, что имеются список, который разделен на группы - он очень длинный, и нужно чтобы 1) выводился весь список на отдельную страницу 2)на страницу выводился небольшой список имен с несколькими параметрами 3) при клике на имя будут выводиться все параметры в отдельном окне
и вот как сделать этот процесс вывода данных автоматизированным? для каждого пункта делать отдельнуб страницу для вывода это слишком тяжело, пунктов больше тысячи=(

   
 
 автор: Trianon   (23.07.2007 в 12:07)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 10:29)
 

Надо понимать, что задача импорта данных из excel уже решена, и что сейчас решается задача формирования отчетов?

   
 
 автор: AlinaAG   (23.07.2007 в 13:24)   письмо автору
 
   для: Trianon   (23.07.2007 в 12:07)
 

Да, нашлась программа ABC Excel Parser Pro plugin. Сейчас думаю над реализацией задачи формирования списков, что-то уже сложилось,что-то так и осталось непонятным=) чувствую себя полным ламером=) Даже вывести список не могу, я сделала еще один параметр в экслеле, который является признаком группы . (список 1 приравнивается к цифре 1, список 2 - к цифре 2 и т.д.) вот и не получается =(

   
 
 автор: Trianon   (23.07.2007 в 13:31)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 13:24)
 

Тут нужно более точно представлять себе получившуюся структуру БД.
Кстати, не исключено, что копировать таблицу sql один-в-один по таблице excel - не самый удачный подход.

   
 
 автор: AlinaAG   (23.07.2007 в 13:48)   письмо автору
 
   для: Trianon   (23.07.2007 в 13:31)
 

Я отредактировала таблицу до "нужного состояния"=) Структура примерно такая: поля:
id
id2
name
place
amount
lang
phone
ved
tel
net
placeid
это всё поля, сейчас я добилась того что у меня выводятся name и place (phone что-то глючит, но исправно) а надо чтобы данные выводились по placeid (у групп он является одинаковым как я объясняла типа у списка1 placeid равен 1 , и как бы по фильтру нужно чтобы на страницу 1 выводились данные с placeid1 и т.д... я не могу найти (честно=)) каким образом это делается.. =(

   
 
 автор: Trianon   (23.07.2007 в 14:13)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 13:48)
 

Покзывайте код....
И хотелось бы все же структуру увидеть полностью - с типами полей и т.п.
Структуру можно получить на закладке Экспорт в phpMyAdmin

   
 
 автор: AlinaAG   (23.07.2007 в 14:30)   письмо автору
 
   для: Trianon   (23.07.2007 в 14:13)
 

CREATE TABLE `school` (
`id` text NOT NULL,
`id2` text NOT NULL,
`name` text NOT NULL,
`place` text NOT NULL,
`amount` text NOT NULL,
`lang` text NOT NULL,
`phone` text NOT NULL,
`ved` text NOT NULL,
`tel` text NOT NULL,
`net` text NOT NULL,
`placeid` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Дамп таблицы занимает ОЧЕНЬ много места =)
Вот здесь (см.ниже кусок кода) должна генерироваться ссылка, но почему-то не получается. Плюс я все еще не смогла найти как делать сортировку по параметрам. Вот кусок кода, который идеально подходит если бы работали эти сгенерированные ссылки+сортировка (фильтрация по полям)

$result = mysql_query("SELECT * FROM table",$db);
if ($myrow = mysql_fetch_array($result))
{
do
{
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["id"],$myrow["name"],
$myrow["place"]);
}
while ($myrow = mysql_fetch_array($result));
}
else
{
echo "Sorry, no records were found!";
}
?>

   
 
 автор: Trianon   (23.07.2007 в 14:59)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 14:30)
 

Вот Ваш запрос

SELECT * FROM table


Его можно изменить для того, чтобы данные фильтровались:

SELECT * FROM table
  WHERE placeid = 1


или для того, чтобы результаты сортировались


SELECT * FROM table
  ORDER BY name


или с учетом обоих требований:


SELECT * FROM table
  WHERE placeid = 1
  ORDER BY name



Формирование конечного кода запроса - задача скрипта - обработчика формы запроса отчета.

Вид фильтра, сортировки и объема отчета указывается в форме, а обработчик формы создает по этим параметрам запрос к базе, извлекает данные и формирует таблицу отчета.

В принципе, допустимо, хотя и необязательно, чтобы генерацией формы и её обработкой занимался один и тот же скрипт.

   
 
 автор: AlinaAG   (23.07.2007 в 15:10)   письмо автору
 
   для: Trianon   (23.07.2007 в 14:59)
 

Спасибо огромное!!! А код с генерирующейся ссылкой правильный? Почему-то при нажатии на него просто возвращается страница, хотя данные в базе есть.
Спасибо еще раз!!

   
 
 автор: Trianon   (23.07.2007 в 15:21)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 15:10)
 

Параметры, которые Вы передаете очередному процессу обработки вызова, сами по себе ничего не значат. Их нужно учитывать при формировании текста запроса.

printf("<a href=\"%s?id=%s\">%s %s</a><br>\n", $PHP_SELF,...

означает что скрипт должен отреагировать на параметр $_GET['id']

Например так:


$sql = "SELECT * FROM school";

if(isset($_GET['id'])
    $sql .= " WHERE id = ".intval( $_GET['id'] );

if(isset($_GET['order']) && $_GET['order'] == 1)
    $sql .= " ORDER BY name";



echo "<hr>$sql<hr>";

$result = mysql_query($sql,$db);
while($myrow = mysql_fetch_array($result))
{
  printf("<a href=\"%s?id=%s\">%s %s</a><br>\n", $PHP_SELF, $myrow["id"],$myrow["name"],
$myrow["place"]);


}

   
 
 автор: AlinaAG   (23.07.2007 в 15:45)   письмо автору
 
   для: Trianon   (23.07.2007 в 15:21)
 

Честно говоря не совсем поняла... ссылки генерируются и создаются на основе самой страницы, так каким образом будет осуществляться запрос? В общем я совсем запуталась =((( Объясните "на пальцах" пожалуйста=(( Где нужно указывать данные, на которые генерируется ссылка?
вот код из справочника, тоже не работает
<html>
<body>
<?php
$db 
mysql_connect("localhost""root");
mysql_select_db("mydb",$db);
// display individual record
if ($id)
{
$result mysql_query("SELECT * FROM employees WHERE id=$id",$db);
$myrow mysql_fetch_array($result);
printf("First name: %s\n<br>"$myrow["first"]);
printf("Last name: %s\n<br>"$myrow["last"]);
printf("Address: %s\n<br>"$myrow["address"]);
printf("Position: %s\n<br>"$myrow["position"]);
}
else
{
// show employee list
$result mysql_query("SELECT * FROM employees",$db);
if (
$myrow mysql_fetch_array($result))
{
// display list if there are records to display
do
{
printf("<a href=\"%s?id=%s\">%s %s</a><br>\n"$PHP_SELF$myrow["id"],
$myrow["first"], $myrow["last"]);
}
while (
$myrow mysql_fetch_array($result));
}
else
{
// no records to display
echo "Sorry, no records were found!";
}
}
?>
</body>
</html>

   
 
 автор: Trianon   (23.07.2007 в 15:59)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 15:45)
 

>Честно говоря не совсем поняла...

>ссылки генерируются и создаются на основе самой страницы,

Вот эту фразу не понял уже я. Что значит на основе страницы?
Ссылки могут генерироваться как угодно.
Как в зависимости от данных так и вне.

>так каким образом будет осуществляться запрос?

Обычным. Когда пользователь нажимает на ссылку - на сервер уходит http-запрос очередной страницы. Обработчик скрипта читает входные параметры и строит в зависимости от параметров текст SQL-запроса. Отправляет SQL-запрос серверу MySQL. Получает данные. Формирует таблицу отчета и выбрасывает её браузеру, отвечая тем самым на http-запрос.
Помимо самой таблицы скрипт может добавить нужные ссылки (или кнопки) для изменения сортировки, для постраничной навигации, поля формы фильтра и пр.
Пользователь получает страницу с таблицей, со ссылками , кнопками, формами .
Процесс повторяется.


В общем я совсем запуталась =((( Объясните "на пальцах" пожалуйста=(( Где нужно указывать данные, на которые генерируется ссылка?

Ссылка генерируется не на данные а на скрипт.
В Вашем примере Вы используете переменную $PHP_SELF в которой, вероятно, лежит имя скрипта, который сгенерировал страницу с ссылкой. Поэтому в этом случае, создавать ссылки с параметрами и обрабатывать запросы с этими параметрами должен один и тот же скрипт.

   
 
 автор: cheops   (23.07.2007 в 11:39)   письмо автору
 
   для: AlinaAG   (23.07.2007 в 10:01)
 

Возможно вас заинтересуют темы по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=4843
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3453
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5655

   
 
 автор: AlinaAG   (23.07.2007 в 14:37)   письмо автору
 
   для: cheops   (23.07.2007 в 11:39)
 

Спасибо!

   
Rambler's Top100
вверх

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