За последние 24 часа нас посетили 17504 программиста и 1721 робот. Сейчас ищут 1889 программистов ...

....перенос из html в БД....

Тема в разделе "PHP и базы данных", создана пользователем rodion4657, 9 апр 2012.

  1. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну молодец =)
     
  2. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Почему то ждал более конструктивного от Вас оправдания.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вы живете нормами 90х, видимо. Вам достаточно. Мне - не достаточно. Я считаю, что на машину надо переваливать как можно больше работы. Но делать это с умом. Если дополнительное поле или таблица позволяет исключить необходимость в сложных запросах - надо добавить хоть десять. Если текстовое поле во второй форме содержит одинаковые текстовые значения и вас это устраивает - меня вот нет. Это вопрос вкуса скорее, чем повод для холивара. Мне больше нравится менять название товара или брать его из одной таблицы. А тут это макароны какие-то.

    Возможно я слишком тупой для вашей конторы. Придется мне как-то жить самому и без ваших собеседований.
    Удачи.
     
  4. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Простите, а что, если у вас товар партиями с разной ценой продажи, закупочными ценами, да при етом они еще и на разных складах лежат? 1 запись? Да я Вас умоляю.
    http://ru.wikipedia.org/wiki/%D0%9D%D0%BE%D1%80%D0%BC%D0%B0 ... 0%BC%D0%B0
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    1 запись да =)

    Добавлено спустя 1 минуту 11 секунд:
    я не понимаю, что у вас такой диссонанс вызывает? то что для партии и склада придется завести по таблице? и что?
    перестаньте сыпать ссылками на педивикию, я вас прошу. мы же с вами разговариваем.
     
  6. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Ну создадите вы да по таблице, дык а сущностям вы как будете их назначать? Сущность одна, а состояния разные :)
    Я соглашусь что можно сделать по разному и как хочешь, вопрос в том, как будет работать не нормализованная бд с гигабайтным размером ;)
    Кстати так и не понял где вы тут холивар увидели, есть правила проектировки, которые давно за нас придумали.

    Добавлено спустя 1 минуту 45 секунд:
    А ссылку я Вам дал на элементарность от которой вы пытаетесь отойти
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) ну и чорт с ними с правилами.

    IT меняется на глазах. кому эти нормы были важны в 90е мне не очень интересно.

    По факту я не вижу ни одной проблемы в том что товар описан в одной таблице, партии живут в другой, содержимое складов в третьей. Где вы тут увидели негатив?
     
  8. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Это я уже понял, что на оптимизацию вы не смотрите.
    То что они в 1 таблице, никто и не спорит. Ок, приведите пожалуйста пример записи:
    Товар, Цена. Есть 1 товар у которого 2 цены (разные, не важно по каким причинам — это нормально). Как вы его запишите? ;)
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    не, не смотрю. десктоп с 16 гигами оперативки можно взять сегодня за полтос евро. о чем будем говорить? месить дальше ветхий завет или вы ответите на мои вопросы? Я же с вами ваши же примеры обсуждаю. А вы уже юлите.
     
  10. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Ну вы просто сказали, что вы это запишите в 1 запись, я просто спросил как, нет так нет.
    И заявление вроде "это все хреня на это не смотри", мягко говоря меня встревожило.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в ту же партию.
    если товар закупается партиями, то и цена идет на партию. это логично. Но имеет смысл обсуждать предметно при наличии минимального ТЗ.

    Добавлено спустя 49 секунд:
    я не вижу сложностей иметь одно описание товара. Если это один товар.

    Добавлено спустя 23 секунды:
    я всё еще прошу вас показать какие-либо сложности. в чем затык?
     
  12. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    А нет никаких сложностей, просто вы просто игнорите правильную проектировку БД, бог с вами, вы к этому пытаетесь еще кого-то приучить мол все решается деньгами. Поверьте это не так.
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    верю =)

    когда у меня посещаемость дойдет до миллиона, я обязательно озадачусь этим вопросом и позвоню лично вам и приглашу на собеседование. Идет?

    вы мне не смогли НИ ОДНОГО аргумента привести, кроме того, что "так сказано сто лет назад, и так правильно". У вас собственное мнение имеется?
     
  14. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    ХМ, я уже сказал, что из бд свалку не надо делать и тем более это советовать другим. Что Вам еще необходимо? Привел общую информацию, не нравится вики, пожалуста: http://dev.mysql.com/doc/refman/5.6/en/data-size.html
    А вы, кроме того что "это все херня, я решаю все деньгами, ведь процессоры вон какие уже" больше ничего не написали.
    p.s. давайте девятитысячное
     
  15. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я вас понял. Аргументации у вас нет. Я спрашиваю вас почему это плохо, а в сказать не можете, кроме как "это не эстетично"?

    Добавлено спустя 21 секунду:
    чем это чревато? что плохого будет?
     
  16. Jakiro

    Jakiro Активный пользователь

    С нами с:
    8 май 2012
    Сообщения:
    9
    Симпатии:
    0
    Вы еще и тролль.)
    Ну а вы то аргументировали — рубли, и вправду аргумент.
    БД со ссылками работает быстрее, чем с тем же текстом + с избыточными данными и выборку производить по ссылкам и уж тем более, если ссылки проиндексированы. Для того чтобы перейти на ссылочную выборку необходимо максимально отказаться от транзитивных зависимостей (3nf) средствами 2nf, разбиением сущностей, ну и атмомарность (1nf). Поэтому я вас и спросил про то, как вы собрались записывать те 2 записи. Вы случаем не на КЛАДР работаете? LOL У тех ребят такая же логика, в бд черт ногу сломит. Страшно представить как они выборку делают, сколько там парсеров лютых написано.
    Разница то всего лишь: один проект, требующий нормальной работы на оборудовании за 100к рублей (сюда поле забьем, да и тут че мелочиться)
    и тот же самый проект правильно спроектированный будет так же летать на оборудовании в 20к ;)
    Я даже удвилен, как вы человеку не посоветовали "да эт херня все, обратись к грамотному, он за деньги сделает" facepalm
    p.s. не аргумент? или вы дальше будете троллить? Ах да, этож херня все *factpalm* Платите. Сколько же вас "спецЫалистов пыхпэ". Слив засчитан. Всего хорошего
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    для вас 50 баксов это - залить баблом? :D ну беда, чо

    в той структуре, что я предложил всё кристально ясно. вы вобще меня слушали? =)

    я не вижу у себя НИКАКИХ косяков, которые приводят к проблемам на слабых машинах. База если распухнет на мульён записей, если не считать описания, в худшем случае до 100МБ дорастёт. И то не факт.

    это вторая моя по частоте употребления фраза. вам просто не повезло. не шучу.

    =) покеда. Только ты скажи сначала, что это за оборудование за 20к рублей, и что там в моем случае будет плохо работать.

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

    Где вы работаете, как вас зовут, чего вы стесняетесь? почему не отвечаете на прямые вопросы?
    У меня вот даже фотка есть, и имя с фамилией. А вы пришли, нафунякали и бежать. Отлично!
     
  18. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Приеду - покораю :D ?
    Работал с КЛАДРом. Сперва тоже вызвало некое недоумение, потом вник. Там всё очень запросто получается простыми запросами без всяких рекурсий и работает быстро (если работать с их числами не как с текстовыми строками с помощью like, а просто разбить длинное число на 4 smallint столбца, поставить на них ключи и далее просто выборки WHERE `a` = X AND `b` = Y AND `c` = Z).
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нет, зачем. человек меня учит уму-разуму. я ж не спорю, что у меня квалификация маленькая. Просто можно сказать, я такой-то работаю вот тут, много лет мол... На своем веку, мол, повидал много бд. Мой опыт говорит, мол, надо делать так да сяк.

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

    Может я и не прав. Но я не вижу в своём способе растабличивания базы каких-либо проблем. Я спросил раз пять. Ответа нет.
     
  20. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    Добрые люди, я смотрю у вас тут не хилая дискуссия развернулась, но может мне кто-нибудь все-таки поможет с кодом, который я выложил, а то я уже не знаю что с ним делать, а нужно очень... вся работа встала, умные люди помогите пожалуйста!!!!
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    тебе на все вопросы ответили же. в чем затык?
     
  22. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    вот я имел в виду вопрос про этот код...проблема в том ,что когда импортирую всю базу в xls-файл все работает....но мне нужно импортировать только определенную выборку(результат поиска по базе)
    Код (Text):
    1. $query = "SELECT * FROM t WHERE UPPER (date) LIKE '%".strtoupper($_POST['date'])."%'";
    и желательно, чтобы этот результат еще и отобразился на html странице и вот тут-то и затык, вылетает ошибка связанная с этими заголовками
    Код (Text):
    1.     header('Content-Type: application/vnd.ms-excel;');
    2.              header('Content-Disposition: attachment; filename="'.$filename.'"');
    3.              header('Expires: 0');
    4.              header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    5.              header("Content-Transfer-Encoding: binary");
    6.              header('Pragma: public');
    7.              header("Content-Length: ".strlen($data));
    8.           }
    9.           else
    10.           {
    11.              header('Content-Type: application/vnd.ms-excel;');
    12.              header('Content-Disposition: attachment; filename="'.$filename.'"');
    13.              header("Content-Transfer-Encoding: binary");
    14.              header('Expires: 0');
    15.              header('Pragma: no-cache');
    16.              header("Content-Length: ".strlen($data));
    17.           }
    18.    exit($data);
    посмотрите пожалуйста код, что я сделал не так?
    Код (Text):
    1. <?php
    2.  
    3.  $filename = 'tt.xls';
    4.  
    5. /* Соединение, выбор БД */
    6. $db = mysql_connect("localhost", "rau2", ""); mysql_select_db("baza2", $db);
    7. mysql_query("SET NAMES UTF-8");
    8.  
    9. $query = "SELECT * FROM t WHERE UPPER (date) LIKE '%".strtoupper($_POST['date'])."%'";
    10.   $res = mysql_query( $query,$db ) or die("Запрос ошибочный");
    11.  
    12.    echo '<h2>База</h2>';
    13.    echo '<table border="1" cellpadding="2" cellspacing="0">';
    14.   echo '<tr><th>ID</th><th>Имя</th><th>Возраст</th><th>Вес</th><th>Дата</th><th>Ред.</th><th>Удл.</th></tr>';
    15.  
    16.  $row = mysql_fetch_array($res);
    17.  
    18.   while ( $row = mysql_fetch_array( $res ) )
    19.    {
    20.      echo '<tr>';
    21.      echo '<td>'.$row['id'].'</td>';
    22.      echo '<td>'.$row['name'].'</td>';
    23.      echo '<td>'.$row['old'].'</td>';
    24.      echo '<td>'.$row['ves'].'</td>';
    25.       echo '<td>'.$row['date'].'</td>';  
    26.      echo '<td><a href="'.$_SERVER['PHP_SELF'].'?action=editform&id='.$row['id'].'">Ред.</a></td>';
    27.      echo '<td><a href="'.$_SERVER['PHP_SELF'].'?action=delete&id='.$row['id'].'">Удл.</a></td>';
    28.      echo '</tr>';
    29.    }
    30.    echo '</table>';
    31.      echo '</br></br><td><button type="button" onClick="history.back();">Отобразить всю базу данных</button></td>';
    32.  
    33.  
    34. require_once 'Z:/home/localhost/www/PhpExcel/Classes/PHPExcel.php';
    35. $phpExcel = new PHPExcel();
    36.  
    37.  for($i = 2;$row = mysql_fetch_array($res);$i++)
    38.  {
    39. $foo = $phpExcel->getActiveSheet()->setCellValue('A1', 'Имя');
    40. $foo = $phpExcel->getActiveSheet()->setCellValue('B1', 'Возраст');
    41. $foo = $phpExcel->getActiveSheet()->setCellValue('C1', 'Вес');
    42. $foo = $phpExcel->getActiveSheet()->setCellValue('D1', 'Дата');
    43.  
    44. $foo = $phpExcel->getActiveSheet()->setCellValue('A'.$i, $row['name']);
    45. $foo = $phpExcel->getActiveSheet()->setCellValue('B'.$i, $row['old']);
    46. $foo = $phpExcel->getActiveSheet()->setCellValue('C'.$i, $row['ves']);
    47. $foo = $phpExcel->getActiveSheet()->setCellValue('D'.$i, $row['date']);
    48. }
    49.  
    50. $phpExcel = PHPExcel_IOFactory::createWriter($phpExcel, 'Excel5');
    51. $phpExcel->save($filename);
    52.  
    53.  
    54.  $data = file_get_contents($filename);
    55.  
    56.           // Generate the server headers
    57.           if (strstr($_SERVER['HTTP_USER_AGENT'], "MSIE"))
    58.           {
    59.              header('Content-Type: application/vnd.ms-excel;');
    60.              header('Content-Disposition: attachment; filename="'.$filename.'"');
    61.              header('Expires: 0');
    62.              header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    63.              header("Content-Transfer-Encoding: binary");
    64.              header('Pragma: public');
    65.              header("Content-Length: ".strlen($data));
    66.           }
    67.           else
    68.           {
    69.              header('Content-Type: application/vnd.ms-excel;');
    70.              header('Content-Disposition: attachment; filename="'.$filename.'"');
    71.              header("Content-Transfer-Encoding: binary");
    72.              header('Expires: 0');
    73.              header('Pragma: no-cache');
    74.              header("Content-Length: ".strlen($data));
    75.           }
    76.    exit($data);
    77.  
    78.  
    79.    
    80. ?>
    81. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    82.  
    83. <html xmlns="http://www.w3.org/1999/xhtml">
    84. <head profile="http://gmpg.org/xfn/11">
    85.    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    86.    
    87. </head>
    88.  
    89. <body>
    90.  
    91. </body>
    92. </html>
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    какая ошибка-то?
     
  24. rodion4657

    rodion4657 Активный пользователь

    С нами с:
    24 янв 2012
    Сообщения:
    135
    Симпатии:
    0
    вот такая ерунда...
     
  25. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Ты пытаешься выводить echo '<td>'.$row['id'].'</td>';
    а потом используешь header(), так нельзя.

    До вызова ф-и header нельзя ничего выводить.