PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (2): [1] 2 »

> Найдено сообщений: 26
Alexander Goryachij Отправлено: 14 Мая, 2013 - 09:24:05 • Тема: загрузка csv • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 42
DelphinPRO пишет:
Почему не используете fgetcsv?


интересует данный способ.. Закатив глазки
Alexander Goryachij Отправлено: 13 Мая, 2013 - 13:58:25 • Тема: загрузка csv • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 42
Здравствуйте, пользуюсь данным скриптом для загрузки csv файлов, проблема в том что не могу загрузить файл содержащий более 100 строк, подскажите как его перенастоить Не понял

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. header('Content-Type: text/html; charset=UTF-8');
  4. include "connect.php";
  5. //===========================================================
  6. //проверяем загрузку файла на наличие ошибок
  7. if($_FILES['filename']['error'] > 0)
  8. {
  9.  switch ($_FILES['uploadfile']['error'])
  10.  {
  11.  case 1: echo 'Размер файла превышает допустимое значение UPLOAD_MAX_FILE_SIZE'; break;
  12.  case 2: echo 'Размер файла превышает допустимое значение MAX_FILE_SIZE'; break;
  13.  case 3: echo 'Не удалось загрузить часть файла'; break;
  14.  case 4: echo 'Файл не был загружен'; break;
  15.  case 6: echo 'Отсутствует временная папка.'; break;
  16.  case 7: echo 'Не удалось записать файл на диск.'; break;
  17.  case 8: echo 'PHP-расширение остановило загрузку файла.'; break;
  18.  }
  19.  exit;
  20. }
  21. //папка для загрузки
  22. $uploaddir = '/tmp';
  23. //новое сгенерированное имя файла
  24. $newFileName=date('YmdHis').rand(10,100).'.csv';
  25. //путь к файлу (папка.файл)
  26. $uploadfile = $uploaddir.$newFileName;
  27. //загружаем файл move_uploaded_file
  28. if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
  29.  echo "Выбранный файл успешно загружен.\n";
  30.  else
  31.  echo "Ошибка загрузки файла.\n";
  32. //считываем содержания файла
  33. $fp = fopen($uploadfile, 'r');
  34. $contents = fread($fp, filesize ($uploadfile));
  35. fclose($fp);
  36. //чистим от php и html дескрипторов
  37. $contents = strip_tags($contents);
  38. $fp = fopen($uploadfile, 'w');
  39. fwrite($fp, $contents);
  40. fclose($fp);
  41. // обрабатываем csv для импорта
  42. $separator=";";
  43. $fop = fopen($uploadfile, "r+");
  44. $i=0;
  45. while (!feof($fop))
  46. {
  47. $read = fgets($fop, 3000);
  48. list($dosim_num,
  49. $date_change,
  50. $burning,
  51. $hp10_gamma,
  52. $hp_surface,
  53. $hp007,
  54. $hp10_n,
  55. $date,
  56. $time,
  57.  $reader,
  58.  $operator) = split($separator ,$read);
  59. mysql_query("INSERT INTO dose_rados SET
  60. `dosim_num`='".$dosim_num."',
  61. `date_change`='".$date_change."',
  62. `burning`='".$burning."',
  63. `hp10_gamma`='".$hp10_gamma."',
  64. `hp_surface`='".$hp_surface."',
  65. `hp007`='".$hp007."',
  66. `hp10_n`='".$hp10_n."',
  67. `date`='".$date."',
  68. `time`='".$time."',
  69. `reader`='".$reader."',
  70. `operator`='".$operator."'");
  71. $i++;
  72. }
  73. fclose($fop);
  74. echo "Импортировано записей: ".$i
  75. ?>
  76.  
Alexander Goryachij Отправлено: 11 Апреля, 2013 - 14:14:42 • Тема: mysql query описание запроса • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 66
LIME пишет:
в php
(Добавление)
array_diff


спс, попробую
(Добавление)
imya пишет:
SELECT * FROM `perehod` WHERE thum = null ?


это все и так понятно, этих 'tnum' в таблице много, вот сколько Радость
CODE (SQL):
скопировать код в буфер обмена
  1. Showing rows 0 - 29 (9,209 total, Query took 0.0019 sec)
  2. SELECT DISTINCT tnum
  3. FROM `perehod`
  4. LIMIT 0 , 30
  5.  

а меня интересуют только те, которые перечислены в моем запросе..
Alexander Goryachij Отправлено: 11 Апреля, 2013 - 11:14:41 • Тема: mysql query описание запроса • Форум: SQL и Архитектура БД

Ответов: 12
Просмотров: 66
Здравствуйте, есть такой запрос, хочу чтоб после его обработки я мог увидеть те 'tnum' по которым информация не предоставилась (например такого номера нет в таблицах и т.д...)
подскажите или дайте ссылку на источник Улыбка
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM `perehod` WHERE tnum IN
  2. (35742,7589,689,3805,788,31125,35123,8583,35735,52261,
  3. 31016,2663,3449,31154,8556,35331,7833,6670,1554,51796,2219,
  4. 31015,7471,2997,5743,35349,12112,8125,7720,6639,828,4449,5627,
  5. 30353,7582,6600,8319,4066,34083,37105,7831,7866,8736,3295,6511,
  6. 51509,1906,36190,12049,30459,6226,30304,7757,7306,36347,2849,1385,
  7. 3904,7683,51546,35533,870,4098,3349,50163,3920,1260,6792,8256,9131,
  8. 3729,1602,36836,33023,6109,37032,34860,7498,35179,30524,4388,
  9. 31543,5737,4159,883,35793,10822,30497,31649,4357,32581,8048,199,
  10. 30788,30798,5079,860,31914,4839,5255,1823,32970,51530,30333,
  11. 37278,129,8704,31889,36262,31542,3868,3726,31891,2261,7462,36223,
  12. 7497,4399,35628,50772,35167,4398,31518,6516,7572,36683,
  13. 4271,4678,3696,2353,5415,628,44618,5719,35686,4387,1445,31348,
  14. 8814,30354,36703,6507,31260,37138,36256,30114,31079,9333,
  15. 5396,31021,731,36689,3378,7763,31890,8199,36272,3852,8777,
  16. 7446,2742,7752,31720,36511,32181,31334,7124,7307,31304,35200,
  17. 7528,37279,36694,3194,37411,37385,861,190,31706,4708,35113,35178,
  18. 1071,4425,6295,7974,1070,9249,1050,50915,8850,1486,8155,
  19. 1246,30898,35759,1073,1245,8256,37087,36811,4303,571,4064,7523,
  20. 31708,3135,4308,35664,5844,1080,30427,9816,35368,9679,1337,
  21. 128,30623,3477,36316,51296,3083,3428,31258,4606,35561,10902,
  22. 7392,2307,7728,4801,31152,664,9545,1090,37454,51537,31778,31122,
  23. 1101,3170,35817,30141,2767,8171,37261,37294,36647,2344,36986,
  24. 35963,31459,1104,2956,32740,9268,4935,3835,6060,36102,35260,31705,
  25. 3929,5431,8333,7663,5184,1118,4230,1269,52047,52030,7335,
  26. 37029,4461,35197,31206,31263,8718,35905,32415,1202,30598,5297,
  27. 2216,4713,3373,1838,7419,7238,44278,33783,7869,44028,36559,3719,
  28. 5894,4622,665,8602,30351,30421,2197,35956,3897,44120,398,4213,8618,30426,
  29. 50757,30118,5660,37266,36538,2543,30948,30783,31119,8080,36537,
  30. 30459,31291,7540,2040,30278,5715,4757,31056,7343,5390,5058,7069,
  31. 31966,6564,1049,7806,7755,35631,36891,4760,7108,6320,7867,36540,
  32. 6411,6986,4834,8744,2654,31351,5983,8006,8255,1281,33293,3026,
  33. 30297,6473,31694,3778,50776,1281,5711,30707,35073,6080,8345,
  34. 31947,34909) ORDER BY tnum
  35.  
Alexander Goryachij Отправлено: 05 Апреля, 2013 - 10:49:28 • Тема: Сократить запись • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 25
LIME пишет:
http://dev.mysql.com/doc/refman/5.6/en/string-functions.html#function_substr


спс!
сделал так
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT pers.tnum,
  3.   pers.surname,
  4.   LEFT(pers.name,1),
  5.   LEFT(pers.secondname,1),
  6.   perehod.department
  7. FROM pers,  perehod
  8. WHERE pers.tnum = perehod.tnum
  9. AND perehod.department = 'ЦТАИ'
  10.  
Alexander Goryachij Отправлено: 05 Апреля, 2013 - 08:43:13 • Тема: Сократить запись • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 25
Здравствуйте, подскажите как сократить запись до одного символа

Запросом достаю из mysql инф. о персонале... ФИО записаны полностью, требуется получить на выходе только первую букву имени (pers.name) и отчества (pers.secondname). Как я могу это сделать???
Можно просто ссылку на источник Радость

PHP:
скопировать код в буфер обмена
  1.  
  2.  $query="SELECT pers.tnum,
  3.   pers.surname,
  4.   pers.name,
  5.   pers.secondname,
  6.   perehod.department
  7. FROM pers,  perehod
  8. WHERE pers.tnum = perehod.tnum
  9. AND perehod.department = 'ЦТАИ'";
  10.   $result=mysql_query($query,$db);
  11.    while ($bg=mysql_fetch_array($result,MYSQL_NUM))
  12.    {
  13.  echo"
  14.  <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
  15.  <title>Бейджи</title>
  16.  <style type='text/css'>
  17.   TABLE {
  18.    border-collapse: collapse; /* Убираем двойные линии между ячейками */
  19.    width: 127px; /* Ширина таблицы */
  20.   }
  21.   TH {
  22.    background: #0000; /* Цвет фона ячейки */
  23.    text-align: center; /* Выравнивание по левому краю */
  24.   }
  25.   TD {
  26.    background: #fff; /* Цвет фона ячеек */
  27.    text-align: center; /* Выравнивание по центру */
  28.   }
  29.   TH, TD {
  30.    border: 2px solid black; /* Параметры рамки */
  31.    padding: 0px; /* Поля вокруг текста */
  32.   }
  33.  </style>
  34. <body>
  35.  <table>
  36.   <tr><th><FONT face='Verdana' size='1'>$bg[0]</th></FONT></tr>
  37.   <tr><th><FONT face='Verdana' size='1'>$bg[1] $bg[2]. $bg[3].</FONT></th></tr>
  38.   <tr><th><FONT face='Verdana' size='1'>$bg[4]</FONT></th></tr>";
  39.   }
  40.  echo "</table>";
  41.  
Alexander Goryachij Отправлено: 19 Марта, 2013 - 10:31:55 • Тема: Cоздать файл MS Excel • Форум: SQL и Архитектура БД

Ответов: 0
Просмотров: 12
Здравствуйте, имеется такой скрипт, выводящий результат запроса на страницу...

Подскажите, пожалуйста, что и где нужно дописать, что б я мог преобразовать его в ms excel.

PHP:
скопировать код в буфер обмена
  1.  
  2. <link rel="stylesheet" type="text/css" href="style.css" />
  3. <?PHP
  4. include_once "connect.php";
  5. include "func.php";
  6. $start_date=$_POST[start_date_cur];
  7. $end_date=$_POST[end_date_cur];
  8. $start_date_pr=$_POST[start_date_cur];
  9. $sd_prev= new DateTime($start_date_pr);
  10. $sd_prev->modify("-1 months");
  11. $start_date_prev=$sd_prev->format('Y-m-d');
  12. $end_date_pr=$_POST[end_date_cur];
  13. $ed_prev= new DateTime($end_date_pr);
  14. $ed_prev->modify("-1 months");
  15. $end_date_prev=$ed_prev->format('Y-m-d');
  16. $year=substr($_POST[start_date_cur],0,4)."-01-01";
  17.  
  18. //===================================================================  
  19.        
  20.         if (isset($_POST['rados']) && $_POST['rados']=='Yes')
  21.         {
  22.         echo '<span style = "color:#363636">';
  23.     printf("<h4><center><FONT face='Lucida Console'> ----------, за период с %s по %s и предыдущий месяц.</FONT></center></h4>",
  24.     $start_date, $end_date);
  25.     echo '<FONT face="Lucida Console">--------- ---------,';
  26.     echo "<br>";
  27.     echo '<FONT face="Lucida Console">----------------.</FONT>';
  28.     echo "<br>";
  29.     echo "<FONT face='Lucida Console'>Текущая дата  ".date("Y-m-d")."<br></FONT>";
  30.     echo "<FONT face='Lucida Console'>Текущее время  ".date("H:i");
  31.     echo "<br>";
  32.     echo "<br>";
  33.     echo "<span style='color:#4f94cd; font-size: 110%'></span><table border = '1'>
  34.    <tr><td>№</td><td>Подразделение</td><td>СК</td><td>------- номер</td><td>Фамилия</td>
  35.    <td>Имя</td><td>Отчество</td><td>Пол</td><td>Возраст</td><td>TLD 1</td><td>TLD 2</td><td>Признак</td>
  36.         <td>----- начала года----</td><td>------ предыдущий месяц-----</td>
  37.         <td>------ текущий месяц, ---</td></tr>"; -
  38.         $query="SELECT
  39.         perehod.department,
  40.         perehod.aux_build,
  41.         dose_rados.tnum,
  42.         pers_idk.surname,
  43.         pers_idk.name,
  44.         pers_idk.secondname,
  45.         pers_idk.birthday,
  46.         pers_idk.sex,
  47.         tld_num.tld_1,
  48.         tld_num.tld_2,
  49.         tld_num.priznak,
  50.         sum( dose_rados.hp10_gamma ) AS dose_summa
  51.    FROM dose_rados, tld_num, perehod, pers_idk
  52.    WHERE dose_rados.date_change BETWEEN '$year' AND '$end_date'
  53.    AND ( dose_rados.date_change <= perehod.date_out OR perehod.date_out IS NULL )
  54.    AND dose_rados.tnum = tld_num.tnum AND perehod.tnum = pers_idk.tnum
  55.    AND pers_idk.tnum = dose_rados.tnum GROUP BY tnum HAVING dose_summa >=10";
  56.        
  57.        
  58.     $result3=mysql_query($query,$db);
  59.     $Nu=1;
  60.     while ($s=mysql_fetch_array($result3,MYSQL_NUM))
  61.    {
  62.     $age=(gmdate('Y', time() - strtotime($s[6])) - 1970);
  63.        
  64.         $query="select sum(hp10_gamma)from dose_rados where (dosim_num='$s[8]' or dosim_num='$s[9]') and
  65.         date_change>='$start_date' and date_change<='$end_date'";
  66.         $dose_m=mysql_fetch_row(mysql_query($query));
  67.         $dose_m=round($dose_m[0],4);
  68.        
  69.         $query="select sum(hp10_gamma)from dose_rados where (dosim_num='$s[8]' or dosim_num='$s[9]') and
  70.         date_change>='$start_date_prev' and date_change<='$end_date_prev'";
  71.         $dose_m_pr=mysql_fetch_row(mysql_query($query));
  72.         $dose_m_pr=round($dose_m_pr[0],4);
  73.        
  74.         $query="select sum(hp10_gamma)from dose_rados where (dosim_num='$s[8]' or dosim_num='$s[9]') and
  75.         date_change>='$year' and date_change<='$end_date'";
  76.         $dose_y=mysql_fetch_row(mysql_query($query));
  77.         $dose_y=round($dose_y[0],4);
  78.        
  79.         echo "<tr><td>$Nu</td><td>$s[0]</td><td>$s[1]</td><td>$s[2]</td><td>$s[3]</td><td>$s[4]</td><td>$s[5]</td>
  80.    <td>$s[7]</td><td>$age</td><td>$s[8]</td><td>$s[9]</td><td>$s[10]</td><td>$dose_y</td><td>$dose_m_pr</td>
  81.         <td>$dose_m</td></tr>";
  82.     $Nu++;
  83.     }
  84.         echo "</table>";
  85.         echo "<br>";
  86.     echo "<br>";
  87.         }
  88.        
  89.         echo "</table>";
  90.        
  91.         }
  92.  
  93.    
  94.  mysql_close($db);
  95.  
  96. ?>
  97.  
Alexander Goryachij Отправлено: 13 Марта, 2013 - 07:52:20 • Тема: 1109 - Unknown table 'id' in MULTI DELETE • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 62
Мелкий пишет:
esterio пишет:
2. && в MySQL отсутсвует, нужно использовать AND

Мануал не согласен: http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]l-operators[dot]html

esterio пишет:
3. date зарегестрированое слово, нужно заворачивать в обратные кавички `

Примечательно, но необязательно. http://dev[dot]mysql[dot]com/doc/refman/[dot][dot][dot]erved-words[dot]html
Date по многочисленным заявкам в списке слов, которые можно использовать без кавычек Закатив глазки

Alexander Goryachij пишет:
нужно из таблиц table1 удалить строки которые есть в таблице table2

CODE (SQL):
скопировать код в буфер обмена
  1. DELETE FROM table1 USING table1 a JOIN table2 b ON (a.date=b.date && a.num=b.num && a.id=b.id)

?




Спасибо! но не сработало...
в table1 есть строки идентичные table2, из table1 их нужно удалить, а в table2 они должны остаться... снова эта ошибка Unknown table ' ' in MULTI DELETE

структура таблиц

== Table structure for table table1

|------
|Field|Type|Null|Default
|------
|id|int(11)|Yes|NULL
|date|date|Yes|NULL
|num|float(8,4)|No|
|date_op|date|Yes|NULL
|time_op|time|Yes|NULL
|operator|text|No|




== Table structure for table table2

|------
|Field|Type|Null|Default
|------
|id|int(11)|Yes|NULL
|date|date|Yes|NULL
|num|float(8,4)|No|
|date_op|date|Yes|NULL
|time_op|time|Yes|NULL
|operator|text|No|

Alexander Goryachij Отправлено: 12 Марта, 2013 - 14:40:24 • Тема: 1109 - Unknown table 'id' in MULTI DELETE • Форум: SQL и Архитектура БД

Ответов: 4
Просмотров: 62
здравствуйте. нужно из таблиц table1 удалить строки которые есть в таблице table2
запрос выдает ошибку - 1109 - Unknown table 'id' in MULTI DELETE
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. DELETE
  3.  a.id,
  4.  a.date,
  5.  a.num,
  6.  a.date_op,
  7.  a.time_op,
  8.  a.operator
  9. FROM table1 a, table2 b  
  10. WHERE
  11.  a.date=b.date
  12.  && a.num=b.num
  13.  && a.id=b.id
  14.  
Alexander Goryachij Отправлено: 21 Февраля, 2013 - 09:30:02 • Тема: HELP!!! mysql query • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 21
Мелкий пишет:
Используйте не distinct, а group by по perehod.department


Работает!!! Огромное Спасибо!!!
Alexander Goryachij Отправлено: 21 Февраля, 2013 - 09:00:46 • Тема: HELP!!! mysql query • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 21
Здравствуйте помогите написать запрос.
perehod.department - это подразделение
count( DISTINCT perehod.num ) AS pers - количество персонала в каждом подразделении
sum( doz_tld.znachenie ) AS znachenie - суммарное значение для всего персонала в отдельно взятом подразделении.

вот здесь
CODE (SQL):
скопировать код в буфер обмена
  1.  WHERE perehod.department
  2. IN (
  3. '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'
  4. )
требуется получить значения по каждому подразделению в отдельности:
вот как то так
1 ; 54 ; 45.05
2 ; 102 ; 98.04
3 ; 351 ; 225.15
и т.д...
( IN на '=' уже менял Улыбка )


CODE (SQL):
скопировать код в буфер обмена
  1. SELECT DISTINCT perehod.department, count( DISTINCT perehod.num ) AS pers, sum( doz_tld.znachenie ) AS znachenie
  2. FROM perehod, doz_tld
  3. WHERE perehod.department
  4. IN (
  5. '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17'
  6. )
  7. AND perehod.date_out IS NULL
  8. AND perehod.num = doz_tld.num
  9. AND doz_tld.date
  10. BETWEEN '2012-01-01'
  11. AND '2012-03-31'
  12.  
  13.  


структура таблиц

== Table structure for table perehod

|------
|Field|Type|Null|Default
|------
|num|int(11)|Yes|NULL
|enterprise|text|No|
|department|text|Yes|NULL
|aux_build|int(11)|No|
|trip|tinyint(1)|No|
|category|text|No|
|critical_group|tinyint(1)|No|
|cassette|int(11)|Yes|NULL
|shop|text|Yes|NULL
|post|text|Yes|NULL
|date_in|date|Yes|NULL
|date_out|date|Yes|NULL
|conditions|text|Yes|NULL
|date_op|date|Yes|NULL
|time_op|time|Yes|NULL
|operator|text|No|

-------------------------------- ------------------------
== Table structure for table doz_tld
|------
|Field|Type|Null|Default
|------
|num|varchar(11)|Yes|NULL
|date|date|Yes|NULL
|znachenie|float(8,4)|No|
|date_op|date|Yes|NULL
|time_op|time|Yes|NULL
|operator|text|No|
Alexander Goryachij Отправлено: 19 Февраля, 2013 - 14:24:17 • Тема: Warning mysql_fetch_row(): supplied argument is not a valid MySQL result resource in...on line 67 • Форум: SQL и Архитектура БД

Ответов: 3
Просмотров: 31
Здравствуйте, ошибка в коде на строке 67. Помогите найти решение
PHP:
скопировать код в буфер обмена
  1. <link rel="stylesheet" type="text/css" href="style.css" />
  2. <?PHP
  3. include_once "connect.php";
  4. include "func.php";
  5. $shops = array("ЭЦ","ЭРП","ЭП","ЦТПК","ЦТАИ","ЦСДТУ","ЦРБ","ЦД","ХЦ","УТЦ","УВАГР","УПРАВЛ",
  6. "УОНиОТ","ТЦ","СЭЗиС","СФЗ","СОТ","СООС","СКМ","СГСЭР","СГМ","СГД","СГТ","СВНиПБ","СВ ЭРП","РУ УС",
  7. "ПТС","ОЯБ","ОТК","ОППР","ОНиОЭ","ВРХЛ","КОМАНД","АЭС");
  8. //----------------------------------------------------------------------------
  9. //Подсчитываем суммарную дозу по ТЛД
  10. $start_date=$_POST[start_date2];
  11. $end_date=$_POST[end_date2];
  12. $year=substr($_POST[start_date2],0,4)."-01-01"; //Начало отчетного года
  13. echo "<h3>Дозы персонала в текущем квартале, с $_POST[start_date2] до $_POST[end_date2]</h3>";
  14. echo "<table border = '2'>";
  15. echo "<tr><td>Подразделение</td>
  16. <td>Количество лиц</td>
  17. <td>С начала года: менее 1мЗв</td>
  18. <td>1-2 мЗв</td>
  19. <td>2-6 мЗв</td>
  20. <td>6-10 мЗв</td>
  21. <td>10-15 мЗв</td>
  22. <td>15-20 мЗв</td>
  23. <td>20-30 мЗв</td>
  24. <td>30-50 мЗв</td>
  25. <td>более 50 мЗв</td>
  26. <td>Коллективная доза, мЗв*чел</td>
  27. <td>Средняя доза, мЗв</td></tr>";
  28. foreach ($shops as $s)  
  29. { echo "<tr>";
  30.   echo "<td> $s </td>";
  31.   //Коллективная доза
  32.   $query = shop_dose($_POST[start_date2],$_POST[end_date2],$s);
  33.   $sql = "SELECT SUM(a.dose) FROM $query";
  34.   $sql = mysql_query($sql, $db);
  35.   $result = mysql_fetch_row($sql);
  36.   $dose = round($result[0],3);
  37.   //Количество контролируемых лиц
  38.   $sql = "SELECT count(distinct a.tnum) FROM $query";
  39.   $sql = mysql_query($sql, $db);
  40.   $result2 = mysql_fetch_row($sql);
  41.   $count_tld=$result2[0];
  42.   //Распределение доз по величинам
  43.   $sql=distrib_dose($year,$_POST[end_date2],$s);
  44.   $sql = mysql_query($sql, $db);
  45.   $a = array(0,0,0,0,0,0,0,0,0);
  46.         while ($r=mysql_fetch_array($sql,MYSQL_NUM))
  47.                 {      
  48.                         if ($r[0]<1.0): $a[0]++;
  49.                         elseif ($r[0]>=1.0 AND $r[0]<2.0): $a[1]++;
  50.                         elseif ($r[0]>=2 AND $r[0]<6): $a[2]++;
  51.                         elseif ($r[0]>=6 AND $r[0]<10): $a[3]++;
  52.                         elseif ($r[0]>=10 AND $r[0]<15): $a[4]++;
  53.                         elseif ($r[0]>=15 AND $r[0]<20): $a[5]++;
  54.                         elseif ($r[0]>=20 AND $r[0]<30): $a[6]++;
  55.                         elseif ($r[0]>=30 AND $r[0]<50): $a[7]++;
  56.                         elseif ($r[0]>=50): $a[8]++;
  57.                         endif;
  58.                 }      
  59.  // по RADOS
  60.   $query=shop_dose_rados($start_date,$end_date,$s);
  61.   $sql = mysql_query($query, $db);
  62.   $result = mysql_fetch_row($sql);
  63.   $dose_rados=round($result[0],3);
  64.   //Количество контролируемых лиц по RADOS
  65.   $query = count_dose_rados($start_date,$end_date,$s);
  66.   $sql = mysql_query($sql, $db);
  67.   $res2 = mysql_fetch_row($sql);
  68.   $count_rados=$res2[0];
  69.   //Количество контролируемых:
  70.   $pers_count =  $count_tld+$count_rados;
  71.         echo "<td> $pers_count </td>";
  72.   //Общая доза
  73.   $dose = $dose+$dose_rados;
  74.   //Распределение доз
  75.   foreach ($a as $d)    echo "<td>$d</td>";
  76.         echo "<td> $dose </td>";
  77.   //Средняя доза
  78.   $average_dose = round($dose/$pers_count, 3);
  79.         echo "<td> $average_dose </td>";
  80.         echo "</tr>";
  81. //  $summ_dose+=$dose;
  82. //  $summ_pers+=$pers_count;
  83. }
  84. echo "</table>";
  85. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  86.  
  87. //Женщины до 45 лет
  88. echo "<h3>Дозы женщин до 45 лет в текущем квартале, с $_POST[start_date2] до $_POST[end_date2]</h3>";
  89. echo "<table border = '2'>";
  90. echo "<tr><td>Подразделение</td>
  91. <td>Количество лиц</td>
  92. <td>С начала года: менее 1мЗв</td>
  93. <td>1-2 мЗв</td>
  94. <td>2-6 мЗв</td>
  95. <td>6-10 мЗв</td>
  96. <td>более 10 мЗв</td>
  97. <td>Коллективная доза, мЗв*чел</td>
  98. <td>Средняя доза, мЗв</td></tr>";
  99. foreach ($shops as $s)  
  100. { echo "<tr>";
  101.   echo "<td> $s </td>";
  102.   //Коллективная доза
  103.   $query = shop_dose_female($_POST[start_date2],$_POST[end_date2],$s);
  104.   $sql = mysql_query($query, $db);
  105.   $result = mysql_fetch_row($sql);
  106.   $dose = round($result[0],3);
  107.   //Количество контролируемых лиц
  108.   $sql = count_female($_POST[start_date2],$_POST[end_date2],$s);
  109.   $sql = mysql_query($sql, $db);
  110.   $result2 = mysql_fetch_row($sql);
  111.   $count_tld=$result2[0];
  112.   //Распределение доз по величинам
  113.   $sql=distrib_dose_female($year,$_POST[end_date2],$s);
  114.   $sql = mysql_query($sql, $db);
  115.   $a = array(0,0,0,0,0);
  116.         while ($r=mysql_fetch_array($sql,MYSQL_NUM))
  117.                 {      
  118.                         if ($r[0]<1.0): $a[0]++;
  119.                         elseif ($r[0]>=1.0 AND $r[0]<2.0): $a[1]++;
  120.                         elseif ($r[0]>=2 AND $r[0]<6): $a[2]++;
  121.                         elseif ($r[0]>=6 AND $r[0]<10): $a[3]++;
  122.                         elseif ($r[0]>=10): $a[4]++;
  123.                         endif;
  124.                 }      
  125.  // по RADOS
  126.   $query=shop_dose_rados_female($start_date,$end_date,$s);
  127.   $sql = mysql_query($query, $db);
  128.   $result = mysql_fetch_row($sql);
  129.   $dose_rados=round($result[0],3);
  130.   //Количество контролируемых лиц по RADOS
  131.   $query = count_dose_rados_female($start_date,$end_date,$s);
  132.   $sql = mysql_query($sql, $db);
  133.   $res2 = mysql_fetch_row($sql);
  134.   $count_rados=$res2[0];
  135.   //Количество контролируемых:
  136.   $pers_count =  $count_tld+$count_rados;
  137.         echo "<td> $pers_count </td>";
  138.   //Общая доза
  139.   $dose = $dose+$dose_rados;
  140.   //Распределение доз
  141.   foreach ($a as $d)    echo "<td>$d</td>";
  142.         echo "<td> $dose </td>";
  143.   //Средняя доза
  144.   $average_dose = round($dose/$pers_count, 3);
  145.         echo "<td> $average_dose </td>";
  146.         echo "</tr>";
  147. //  $summ_dose+=$dose;
  148. //  $summ_pers+=$pers_count;
  149. }
  150. echo "</table>";
  151.  
  152.  //----------------------------------------------------------------------------
  153.   mysql_close($db);  //закрытие соединение
  154.   echo "<br>";
  155. //  include "title.php";
  156. ?>
  157.  
Alexander Goryachij Отправлено: 18 Февраля, 2013 - 14:49:38 • Тема: создать файл MS Excel • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 31
Albertino пишет:
Alexander Goryachij пишет:
Здравствуйте, требуется получить MS Excel файл из данного скрипта. подскажите что делать.

Могу посоветовать библиотеку phpExcel (http://phpexcel[dot]codeplex[dot]com/ ), очень хорошая вещь, много что иожно делать с xml документом


Спасибо, посмотрю! А проще ничего не бывает? Однако
Alexander Goryachij Отправлено: 18 Февраля, 2013 - 11:36:00 • Тема: создать файл MS Excel • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 31
Здравствуйте, требуется получить MS Excel файл из данного скрипта. подскажите что делать.

PHP:
скопировать код в буфер обмена
  1. <link rel="stylesheet" type="text/css" href="style.css" />
  2. <?PHP
  3. include_once "connect.php";
  4. include "func_neutron.php";
  5. //Переопределяем даты
  6.         $start_date=$_POST[start_date4];
  7.         $end_date=$_POST[end_date4];
  8.         $year=substr($_POST[start_date4],0,4)."-01-01"; //Начало отчетного года
  9. //=============================================
  10.  
  11. //Количество контролируемых лиц по....
  12.    $query = neu_dose($start_date,$end_date,$_POST[shop]);
  13.    $sql = "SELECT count(distinct a.tnum) FROM $query";
  14.    $sql = mysql_query($sql, $db);
  15.    $res1 = mysql_fetch_row($sql);
  16. //Коллективная .....   
  17.    $sql = "SELECT SUM(a.dose) FROM $query";
  18.    $sql = mysql_query($sql, $db);
  19.    $result = mysql_fetch_row($sql);
  20.    $dose = $result[0];
  21. // Заполняем ....
  22.         echo '<span style = "color:#4f94cd">';
  23.         printf ("<h3><center>.... %s за период с %s по %s .</center></h3>",$_POST[shop], $start_date, $end_date);
  24.         echo'<table bordercolor="#B0C4DE" border="6" width="100%">';
  25.         echo"<tr><h5><td>No</td><td>Таб.No</td><td>Фамилия</td><td>Имя</td><td>Отчество</td><td> за период, мЗв</td>
  26.         <td> с начала года, мЗв</td></h5></tr>";
  27.         $query=pers_neu_dose($start_date,$end_date,$_POST[shop]);
  28.         $pers = mysql_query($query, $db);
  29.         for($count=1; $count<=mysql_num_rows($pers); $count++)
  30.         {$row=mysql_fetch_row($pers);
  31.         $query="select sum(a.dose) from neutron_dose a where a.tnum='$row[0]' and
  32.         a.date>='$start_date' and a.date<='$end_date'";
  33.         $dose_kw=mysql_fetch_row(mysql_query($query));
  34.         $dose_kw=round($dose_kw[0],4);
  35.         $query="select sum(a.dose) from neutron_dose a where a.tnum='$row[0]' and
  36.         a.date>='$year' and a.date<='$end_date'";
  37.         $dose_yr=mysql_fetch_row(mysql_query($query));
  38.         $dose_yr=round($dose_yr[0],4);
  39.         echo "<tr><td>$count</td><td>$row[0]</td><td>$row[1]</td><td>$row[2]</td><td>$row[3]</td><td>$dose_kw</td><td>$dose_yr</td></tr>";
  40. }
  41.         echo "</table>";
  42.   // Итого
  43.   printf(" %s за период с %s по %s, составляет : %.3f мЗв",
  44.   $_POST[shop], $start_date, $end_date, $dose);
  45.   echo "<br>";
  46.   printf("Количество контролируемых лиц - %d", $res1[0]);
  47.   echo "<br>";
  48.   printf(" - %.3f мЗв", $dose/$res1[0]);
  49.        
  50. ?>     
  51.        
  52.        
  53.        
  54.        
  55.        
  56.        
  57.        
  58.        
  59.  
Alexander Goryachij Отправлено: 12 Февраля, 2013 - 11:46:42 • Тема: Quick_CSV_import кто пользовался? подскажите как настроить • Форум: SQL и Архитектура БД

Ответов: 9
Просмотров: 51
Теперь все так, как я хотел Радость

CODE (html):
скопировать код в буфер обмена
  1. <form enctype="multipart/form-data" action="rados_add_sql.php" method="POST">
  2.    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
  3.    Выбрать : <input name="uploadfile" type="file" />
  4.    <input type="image" value="Ввод" />
  5.  



PHP:
скопировать код в буфер обмена
  1.   <?PHP
  2. header('Content-Type: text/html; charset=UTF-8');
  3. include "connect.php";
  4. //===========================================================
  5. //проверяем загрузку файла на наличие ошибок
  6. if($_FILES['filename']['error'] > 0)
  7. {
  8.  switch ($_FILES['uploadfile']['error'])
  9.  {
  10.  case 1: echo 'Размер файла превышает допустимое значение UPLOAD_MAX_FILE_SIZE'; break;
  11.  case 2: echo 'Размер файла превышает допустимое значение MAX_FILE_SIZE'; break;
  12.  case 3: echo 'Не удалось загрузить часть файла'; break;
  13.  case 4: echo 'Файл не был загружен'; break;
  14.  case 6: echo 'Отсутствует временная папка.'; break;
  15.  case 7: echo 'Не удалось записать файл на диск.'; break;
  16.  case 8: echo 'PHP-расширение остановило загрузку файла.'; break;
  17.  }
  18.  exit;
  19. }
  20. //папка для загрузки
  21. $uploaddir = '/tmp';
  22. //новое сгенерированное имя файла
  23. $newFileName=date('YmdHis').rand(10,100).'.csv';
  24. //путь к файлу (папка.файл)
  25. $uploadfile = $uploaddir.$newFileName;
  26. //загружаем файл move_uploaded_file
  27. if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $uploadfile))
  28.  echo "Выбранный файл успешно загружен.\n";
  29.  else
  30.  echo "Ошибка загрузки файла.\n";
  31. //считываем содержания файла
  32. $fp = fopen($uploadfile, 'r');
  33. $contents = fread($fp, filesize ($uploadfile));
  34. fclose($fp);
  35. //чистим от php и html дескрипторов
  36. $contents = strip_tags($contents);
  37. $fp = fopen($uploadfile, 'w');
  38. fwrite($fp, $contents);
  39. fclose($fp);
  40. // обрабатываем csv для импорта
  41. $separator=";";
  42. $fop = fopen($uploadfile, "r+");
  43. $i=0;
  44. while (!feof($fop))
  45. {
  46. $read = fgets($fop, 3000);
  47. list($dosim_num,
  48. $date_change,
  49. $burning,
  50. $hp10_gamma,
  51. $hp_surface,
  52. $hp007,
  53. $hp10_n,
  54. $date,
  55. $time,
  56.  $reader,
  57.  $operator) = split($separator ,$read);
  58. mysql_query("INSERT INTO dose_rados SET
  59. `dosim_num`='".$dosim_num."',
  60. `date_change`='".$date_change."',
  61. `burning`='".$burning."',
  62. `hp10_gamma`='".$hp10_gamma."',
  63. `hp_surface`='".$hp_surface."',
  64. `hp007`='".$hp007."',
  65. `hp10_n`='".$hp10_n."',
  66. `date`='".$date."',
  67. `time`='".$time."',
  68. `reader`='".$reader."',
  69. `operator`='".$operator."'");
  70. $i++;
  71. }
  72. fclose($fop);
  73. echo "Импортировано записей: ".$i
  74. ?>

Страниц (2): [1] 2 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB