За последние 24 часа нас посетили 18384 программиста и 1711 роботов. Сейчас ищет 1881 программист ...

что заносится в базу данных

Тема в разделе "Вопросы от блондинок", создана пользователем matana, 19 авг 2009.

  1. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    Здравствуйте!
    Есть сайт: фреймы, слои, таблицы, тексты. картинки, видео, видеоуроки и т.д.(HTML, YAVA SCRIPT, CSS)
    Хочу с целью обучения переделать ( PHP, My SQL). Не могу понять: ЧТО заносится в базу данных (информационные системы знаю). Это названия файлов, полностью файлы, кусочки типа "текст до картинки - картинка - текст..." или как-то иначе?.
    Хотелось бы. чтобы показали (рассказали) на каком - нибудь примере, или посоветовали, где прочитать.
     
  2. kostyl

    kostyl Guest

    А как "текст до картинки" переделывается для видео в слои таблиц базы данных My SQL в информационных сиcтемах у тебя, когда HTML и CSS отображаются в YAVA SCRIPT?
     
  3. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    С Вашим юмором знакома, не смешно, извините, хотелось бы получить ответ.
     
  4. kostyl

    kostyl Guest

    matana
    Сперва вопрос задать нормально надо, а потом и ответы будут адекватные.
     
  5. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    kostyl
    Сегодня у тебя явно шикарное настроение.
    Но My SQL и особенно YAVA SCRIPT меня убили =)
     
  6. iliavlad

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

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    так если он есть, может проще взять и посмотреть? тем более со знанием информационных систем.
     
  7. kostyl

    kostyl Guest

    Бывает.
    Ответ таков, что вам надо хранить то и храните. Можно хранить всё, можно ничего не хранить. Кто как делает...
     
  8. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    где-где, в туалете читай, газеты
     
  9. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    В базу данных заносятся данные. Как двоичные, так и just as text.
    Ваш К.О.
     
  10. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    matana
    В базе данных хранятся тексты, ссылки на картинки (ссылки на файлы). Так же часто хранятся сверстанные в html статьи.
     
  11. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    Спасибо, Kreker
     
  12. Jensi

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

    С нами с:
    9 апр 2009
    Сообщения:
    299
    Симпатии:
    0
    http://www.mysql.ru/

    Какую БД, Вы о чём? Изучите сперва PHP ( http://php.ru/ ), а потом уже начальные сведения о MySQL ( а не MY SQL))) )
    И не YAVA SCRIPT, а JavaScript! Пишите мне в ICQ: 1819906, помогу, т.к. сейчас делать вообще нефиг, кроме тренировок по футболу:((
     
  13. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    Спасибо и Вам, Jensi, воспользуюсь предложением. Именно изучением PHP и MySQL я сейчас и занимаюсь. С орфографией проблемы. каюсь.
     
  14. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Да Вы не бойтесь, спрашивайте! Бывает, иногда тут люди срываются, когда сотый раз отвечают :)
    Просто на большинство вопросов уже есть ответ и его можно найти через поисковик.
     
  15. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    Да я и не боюсь, ответ почти понятен. Продолжаю читать учебники. А чтобы воспользоваться поиском, надо знать, что искать. Квалификации не хватает.
     
  16. lanc777

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

    С нами с:
    19 авг 2009
    Сообщения:
    59
    Симпатии:
    0
    простой пример это регистрация пользователей в базе данных хранится информация о пользователях сайта и их пароли от учетных записей. Базы нужны для хранения динамического контента(текстов, заголовков, ссылок на картинки ) такого как новости или форум.
     
  17. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    Спасибо, lanc777.
     
  18. lanc777

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

    С нами с:
    19 авг 2009
    Сообщения:
    59
    Симпатии:
    0
    незачто обращайся)
     
  19. matana

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

    С нами с:
    16 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Адрес:
    Пермь
    сообщение от Kreker:
    matana писал(а):
    Здравствуйте!
    Дочитала "Библию MyCQL", руководство. С вводом числовых значений, формами, таблицами все понятно. Непонятно, как вводятся целые файлы: страницы HTML, видео, картинки, тексты. Предполагаю, что вводятся имена файлов и они действуют, как ссылка или указатель. Или ставится какой-то идентификатор. Или вносится целиком текст вместе с кодом. Или - не знаю, что. Опять же, если текст с картинками, то типы разные. Там есть тип до 4 гб - для чего? Может быть, вывод файлов через БД вообще не применяется, потому и не упоминается в учебниках? Загадка...


    Файлы хранятся в файловой системе :) Для этого она и создана. Некоторые извращенцы умудряются читать видео/картинки/музыку как текст и писать в базу, а потом выдавать из нее. Только они забывают несколько вещей:
    1) База данных - это тот же набор файлов. Обычно на каждую таблицу около 3х файлов. Один с данными, другой с индексами, третий - с параметрами таблицы (для таблиц MyISAM: MYD, MYI, FRM соответственно) . То есть, получается, что они читают картинку из файла (myimage.jpg) и записывают через Систему Управления Базой Данных (СУБД) в другой файл (можно сказать, что даже в два - MYD & MYI). Где логика? При этом, в одном файле-то базы получается не одна картинка, а тысячи (если тысячи строк). А здесь можно сделать и логичные заключения - чем больше файл, тем дольше он читается, тем больше памяти для него нужно, тем сложнее найти в нем нужное. Отсюда вывод - сохраняя картинки (и прочую требуху) в базе, мы только тормозим вывод наших данных.
    2) Данные, запрошенные у СУБД, хранятся некоторое время в её кэше. Когда РНР запрашивает картинку из базы, то она передается в него, далее он её выдает пользователю через apache. Получается связка Файловая система -> MySQL -> PHP -> Apache -> клиент.
    РНР как известно, имеет ограниченную память для обработки своих скриптов, а так же ограниченное время работы скрипта. Если у Вас будет качать медленный юзер (100 кбит/с) песню в 5 мегабайт, то скрипт просто прервет работу, когда выйдет max execution time (максимальное время работы скрипта). Конечно, время работы можно поставить и на несколько часов, только при условии, что у Вас свой сервер.
    Так вот, вытаскивая песни/музыку из базы, Вы передаете её по такой цепочке, где у каждого элемента есть свои буферы памяти, скорости обработки, ограничения и прочее. Каждый элемент тормозит выдачу (ведь на обработку-то время нужно, а они не привыкли работать с объемными данными, ведь РНР и MySQL больше нацелены для работы с текстовыми данными!). Нужно ли это?

    Отдавая файлы через файловую систему, организуется связка Файловая система -> Apache -> Клиент. Что намного оптимальнее и логичней, верно? И это правильное решение, поэтому никто и не пишет про хранение файлов в базе.

    3) MySQL, PHP, APACHE - все это предназначено для работы с текстом :) Специальные алгоритмы и прочее-прочее :) Web работает на протоколе HTTP, что расшифровывается как гиперТЕКСТовый транспортный протокол :)
    Просто потом уже организовали передачу картинок, ведь сайтам без них никуда! А потом браузеры стали поддерживать и загрузку файлов по http. Если приходит заголовок с форматом, который браузер не может прочитать (допустим, картинка не png/gif/jpg, а bmp), то он предлагает её сохранить. Вот такую фишку ввели ) И все стали использовать этот протокол для банальной передачи файлов (для этого, кстати, есть ftp). В принципе, удобно, хотя по ftp быстрее.
    CSS, HTML, JavaScript - это тоже текст) Но никто не запрещает пересылать файлы по http.

    В общем текст лучше хранить в базе (если в этом есть необходимость), а файлы - в файловой системе.


    По поводу 4 GB - там поле называется LONGTEXT (LONGBLOB) :)



    А теперь постараюсь рассказать, как же нужно использовать базу данных. Представим обычный портал, где идет описание клипа музыкальной группы: текст + картинки, а внизу ссылка на скачивание клипа.

    И так, наша база:
    SQL:

    1. id | name | text | link
    2. 1 Клип группы Muse - Starlight Вот хороший клип! <img src="/pics/items/1/muse.jpg"> Muse-Starlight.mpg



    Код страницы (напишу все вперемешку, чтобы было понятнее. Сначала такую кашу все пишут...). Допустим, к статьям мы переходит по уникальному идентификатору и ссылка у нас будет вида mysite.ru/index.php?item=1:

    PHP:

    1. <?php
    2.
    3. if (!isset($_GET["item"])) {
    4. die('Вы не выбрали статью!'); //Если открыли страницу, не передав идентификатор статьи, "убиваем" скрипт
    5. }
    6. if (!is_numeric($_GET["item"]) or $_GET["item"] != (int)$_GET["item"]) {//Первым условием проверяем, является ли идентификатор числом. Но функция допускает в качестве чисел не только целые, но и дробные, а так же шестнадцатеричные числа, поэтому делаем вторую проверку: сравниваем исходное число с числом приведенным к целочисленному виду. Если изначально число было дробным (1.42), то будет сравнение 1.42 != 1, что является истиной и скрипт остановится, выдав сообщение. В принципе, можно обойтись и без is_numeric, используя только второе сравнение. От этого не изменится ничего :) Это банальная проверка на Mysql Injection (инъекцию) через числа.
    7. die('Неверный идентификатор статьи');
    8. }
    9. $cursor= mysql_connect(....); //соединение с базой
    10.
    11. $resourse = mysql_query('SELECT * FROM `item` WHERE `id`='.$id); //Обратите внимание, мы не берем в кавычки $id и не экранируем слэши, потому что ид - это число.
    12.
    13. $result = mysql_fetch_array($resourse);
    14. ?>
    15. <html>
    16. <head>
    17. <title><?php echo $result["name"] ?></title>
    18. <body>
    19.
    20. Текст статьи:
    21. <?php
    22. echo $result["text"];
    23. ?>
    24. Ссылка на скачивание клипа:
    25. <a href="/downloads/<?php echo $result["link"].'">'.$result["name"] ?></a>
    26. </body>




    В результате присланный клиенту html будет выглядеть так:

    HTML:

    1. <html>
    2. <head>
    3. <title>Клип группы Muse - Starlight</title>
    4. <body>
    5.
    6. Текст статьи:
    7. Вот хороший клип! <img src="/pics/items/1/muse.jpg">
    8. Ссылка на скачивание клипа:
    9. <a href="/downloads/Muse-Starlight.mpg">Клип группы Muse - Starlight</a>
    10. </body>




    P.S. Вот всегда так. Если меня девушка спросит про какую-то техническую задачу, то точно выйдет от меня с квадратными глазами :)

    P.S.S. Если хотите, то можете опубликовать мой ответ в своей теме, чтобы другие тоже могли видеть.

    P.S.T: Все функции можно посмотреть в документации http://ru2.php.net/manual/en/function.mysql-query.php
    Правда русский вариант недавно удалили :(

    А еще советую сайт http://phpfaq.ru , статьи http://phpfaq.ru/na_tanke и http://phpfaq.ru/debug -- очень важные! Обязательны к прочтению! (правда сейчас сайт почему-то недоступен, но обязательно попробуйте завтра).

    О-о-огромное спасибо! Это именно то, что было непонятно. Спасибо всем, кто помогал.
     
  20. kostyl

    kostyl Guest

    есть еще порох в пороховницах, ягоды в ягодицах и люди с адекватной нервной системой на php.ru!
     
  21. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Чувак, я конечно извращенец в этих делах, но до такого ... до такого даже я ещё не додумывался =)
     
  22. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    Да это мегабоянЪ
     
  23. kostyl

    kostyl Guest

    Apple
    обычно после "ягоды в ягодицах" говорят "влага во ..." ну так и заканчивают
     
  24. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    обычно ... и шары в шароварах