Доброго дня! Подскажите, как реализовать такую вещь: На сайте присутствую категории, к примеру: "Бытовая техника","Компьютеры и ноутбуки","Комплектующие". В каждой категории имеются свои материалы, причем отображаются они как "превьюшки" (То есть фоточка, описание, цена там и все-такое..) . При нажатии на превьюшку открывается полное описание материала. У меня банально не хватает логики, как всё это реализовать при условии, что КАТЕГОРИИ ЧЕЛОВЕК МОЖЕТ ДОБАВЛЯТЬ САМ, и материалы в них тоже САМ.. Есть идея, но она скорее всего не особо правильная: Создать страницу-форму, где нужно будет указать название категории. Это название уходит в обработчик и записывается на другую страницу (со всеми категориями) как ссылка (при помощи printf). Потом еще одна форма, добавляющая материал в ту или иную категорию ииии.... Тут моя логика вообще заходит в тупик, ибо получается, что после заполнения такой формы должна быть создана как минимум одна новая таблица в БД, содержащая определенные поля, чтобы материалы могли в цикле выводиться на страницу.. В общем, может есть какой-то специальный способ по реализации категорий на сайте? Ну,чтобы было типа как тут, на картинке. P.S ТОЛЬКО НЕ ПИШИТЕ КОД ЗА МЕНЯ, просто натолкните
А таблицу-то зачем создавать? У тебя есть таблица "материалы" и таблица "категории". Пихай в последнюю сколько угодно категорий. Ну а в форме создания можешь себе выпадающее меню сделать для выбора категории. И при отправке формы будешь размещать в материалах с указанием идентификатора категории. ЗЫ. Уношу в новички.
@Ganzal, а выпадающий список будет выглядеть как? типа PHP: <select> <?php //Соединяемся с БД и всё-такое do { printf ("<option>%s</option>", $categ['name']); } while ($categ = mysql_fetch_array($res)); ?> </select> А как тогда сделать, ч
У категории есть id у материала есть id и category_id, вот в тег option добавь value с id категории, и записывай материал с этим id категории в category_id. Выйдет, что у тебя материал знает к какой категории добавлен. Это связь один ко многим. Ты mySQL по какой книге изучаешь?
@Ganzal А как тогда сделать, чтобы при выборе категории в этом списке именно в нее и заносились данные? --- Добавлено --- книге? Нет, я обучаюсь по посредственным урокам Попова... Ничего другого в интернете не смог найти..
Блин, я тупой, сколько не перечитываю ваше сообщение - не могу понять .."В тег option добавь value с id категории" Так чтоли? PHP: ("<option value='%s'>%s</option>", $categ['id'], $categ['name']) --- Добавлено --- Вовсе нет Может плохо искал.. Я уже просил одного человека из форума дать наводку, с чего начинать, но он в ответ сказал просто не читать Попова
если в value попадает id то ты сделал всё верно. Просто заходи на ozone и бери книги по MySQL для начинающих при этом смотри, чтобы они были свежие, чем ближе к текущему году тем лучше. Или просто ищи в интернете где можно качать бесплатные книги, вот там накачай и читай, если кое какой раздел не совсем понятен, то смотри его в других книгах. Основы можно за неделю понять. Вот уже зная их, тут смогут помочь быстрее, так как вопросы у тебя будут более правильные.
Ты думаешь откуда мы всё знаем. Либо учитель книгу пересказал и мы потом ещё их перечитали с документацией или сразу сами читали книги и документацию.
denis01, я думаю, давно учился. Как и я. Сейчас php уже другой. Поэтому он и посоветовал тебе новую книгу взять. И по php, и по mysql, чтоб были описаны принципы построения связей между таблицами. Те вопросы, которые ты задаёшь - самые основы
@mkramer хорошо , спасибо. А как мне правильно составить запрос mysql . Вот код формы: PHP: <form action="creating_material.php" method="post" name="form1" id="form1"> <p>Выберите категорию: <select> <?php $db = mysql_connect("localhost","php","12345")or die(mysql_error()); mysql_select_db("gr2", $db)or die(mysql_error()); mysql_set_charset( 'utf8' ); $res = mysql_query("SELECT * FROM `categories`",$db)or die(mysql_error()); $categ = mysql_fetch_array($res); do { printf ("<option value='%s'>%s</option>",$categ['id'], $categ['name']); } while ($categ = mysql_fetch_array($res)); ?> </select></p> <p> <label>Введите название: <input type="text" name="name" id="name" /></label> </p> <p> <label >Введите краткое описание: <input type="text" name="description" id="description" /></label> </p> <p> <label>Введите полное описание: <textarea name="text" id="text"></textarea></label> </p> <p> <input type="submit" name="submit" id="submit" value="Создать" /> </p> </form> Чтобы вставить именно в НУЖНУЮ категорию, как надо записать mysql_query ? --- Добавлено --- Я думаю - PHP: mysql_query ("INSERT INTO `materials` (`name`,`description`,`text`) VALUES ('".$_POST['name']."','".$_POST['description']."','".$_POST['text']."') WHERE id='' '"); А в поле id = что вставлять
И еще я не понимаю как вывести именно те материалы, которые соответствуют выбранной категории... --- Добавлено --- PHP: $db = mysql_connect("localhost","php","12345")or die(mysql_error()); mysql_select_db("gr2", $db)or die(mysql_error()); mysql_set_charset( 'utf8' ); $res = mysql_query("SELECT * FROM `categories`",$db)or die(mysql_error()); $categ = mysql_fetch_array($res); $res2 = mysql_query("SELECT * FROM `materials` WHERE category_id='".$categ['id']."' ",$db)or die(mysql_error()); $materials = mysql_fetch_array($res2);
@Cyrius, вы не поняли. Пока вы не знаете, что такое реляционная база данных, реляционные связи, мы с вами не сможем говорить на одном языке. Купите и прочитайте книгу
Я учился 4 года в институте, там были методички + учителя. Открой любой курс по информатике, там будет много предметов по математики/математическая логика (графы, считаю это важно), физике, технологиям программирования, ООП, безопасность, теория информации, теория базы данных, отдельно sql, C++, html, компьютерная графика (показывали фильм про якудз даже) и т. д. После такой накачки теорией и решения разных математических задачек можно уже приступать к книгам по PHP для новичков. Дальше всё идёт как по маслу.
@mkramer http://informatic.ugatu.ac.ru/lib/office/Proekt.htm Этот сайтв некоторой степени отвечает на вопросы, которые вы мне поставили.. Но достаточно ли этих знаний?
Похоже на правду. Но вы ведь не Access пользоваться будете? Теперь надо купить (скачать) книжку и почитать, как всё это делается в mysql