Здравствуйте! Есть сайт: фреймы, слои, таблицы, тексты. картинки, видео, видеоуроки и т.д.(HTML, YAVA SCRIPT, CSS) Хочу с целью обучения переделать ( PHP, My SQL). Не могу понять: ЧТО заносится в базу данных (информационные системы знаю). Это названия файлов, полностью файлы, кусочки типа "текст до картинки - картинка - текст..." или как-то иначе?. Хотелось бы. чтобы показали (рассказали) на каком - нибудь примере, или посоветовали, где прочитать.
А как "текст до картинки" переделывается для видео в слои таблиц базы данных My SQL в информационных сиcтемах у тебя, когда HTML и CSS отображаются в YAVA SCRIPT?
Бывает. Ответ таков, что вам надо хранить то и храните. Можно хранить всё, можно ничего не хранить. Кто как делает...
matana В базе данных хранятся тексты, ссылки на картинки (ссылки на файлы). Так же часто хранятся сверстанные в html статьи.
http://www.mysql.ru/ Какую БД, Вы о чём? Изучите сперва PHP ( http://php.ru/ ), а потом уже начальные сведения о MySQL ( а не MY SQL))) ) И не YAVA SCRIPT, а JavaScript! Пишите мне в ICQ: 1819906, помогу, т.к. сейчас делать вообще нефиг, кроме тренировок по футболу(
Спасибо и Вам, Jensi, воспользуюсь предложением. Именно изучением PHP и MySQL я сейчас и занимаюсь. С орфографией проблемы. каюсь.
Да Вы не бойтесь, спрашивайте! Бывает, иногда тут люди срываются, когда сотый раз отвечают Просто на большинство вопросов уже есть ответ и его можно найти через поисковик.
Да я и не боюсь, ответ почти понятен. Продолжаю читать учебники. А чтобы воспользоваться поиском, надо знать, что искать. Квалификации не хватает.
простой пример это регистрация пользователей в базе данных хранится информация о пользователях сайта и их пароли от учетных записей. Базы нужны для хранения динамического контента(текстов, заголовков, ссылок на картинки ) такого как новости или форум.
сообщение от 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 -- очень важные! Обязательны к прочтению! (правда сейчас сайт почему-то недоступен, но обязательно попробуйте завтра). О-о-огромное спасибо! Это именно то, что было непонятно. Спасибо всем, кто помогал.