За последние 24 часа нас посетили 59179 программистов и 1834 робота. Сейчас ищут 900 программистов ...

Категории

Тема в разделе "PHP для новичков", создана пользователем Cyrius, 6 июл 2016.

  1. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    Доброго дня!
    Подскажите, как реализовать такую вещь:

    На сайте присутствую категории, к примеру: "Бытовая техника","Компьютеры и ноутбуки","Комплектующие". В каждой категории имеются свои материалы, причем отображаются они как "превьюшки" (То есть фоточка, описание, цена там и все-такое..) . При нажатии на превьюшку открывается полное описание материала.

    У меня банально не хватает логики, как всё это реализовать при условии, что КАТЕГОРИИ ЧЕЛОВЕК МОЖЕТ ДОБАВЛЯТЬ САМ, и материалы в них тоже САМ..


    Есть идея, но она скорее всего не особо правильная:
    Создать страницу-форму, где нужно будет указать название категории. Это название уходит в обработчик и записывается на другую страницу (со всеми категориями) как ссылка (при помощи printf).
    Потом еще одна форма, добавляющая материал в ту или иную категорию ииии.... Тут моя логика вообще заходит в тупик, ибо получается, что после заполнения такой формы должна быть создана как минимум одна новая таблица в БД, содержащая определенные поля, чтобы материалы могли в цикле выводиться на страницу..


    В общем, может есть какой-то специальный способ по реализации категорий на сайте?
    Ну,чтобы было типа как тут, на картинке.

    P.S ТОЛЬКО НЕ ПИШИТЕ КОД ЗА МЕНЯ, просто натолкните
     

    Вложения:

    • qw.png
      qw.png
      Размер файла:
      3,3 КБ
      Просмотров:
      5
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    А таблицу-то зачем создавать? У тебя есть таблица "материалы" и таблица "категории". Пихай в последнюю сколько угодно категорий. Ну а в форме создания можешь себе выпадающее меню сделать для выбора категории. И при отправке формы будешь размещать в материалах с указанием идентификатора категории.

    ЗЫ. Уношу в новички.
     
  3. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    @Ganzal, а выпадающий список будет выглядеть как? типа
    PHP:
    1. <select>
    2. <?php
    3. //Соединяемся с БД и всё-такое
    4. do {
    5. printf ("<option>%s</option>", $categ['name']);
    6. }
    7. while ($categ = mysql_fetch_array($res));
    8. ?>
    9. </select>
    А как тогда сделать, ч
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    У категории есть id у материала есть id и category_id, вот в тег option добавь value с id категории, и записывай материал с этим id категории в category_id.
    Выйдет, что у тебя материал знает к какой категории добавлен.
    Это связь один ко многим. Ты mySQL по какой книге изучаешь?
     
  5. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    @Ganzal А как тогда сделать, чтобы при выборе категории в этом списке именно в нее и заносились данные?
    --- Добавлено ---
    книге? Нет, я обучаюсь по посредственным урокам Попова... Ничего другого в интернете не смог найти..
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Как не смог найти? Или это троллинг?
     
  7. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    Блин, я тупой, сколько не перечитываю ваше сообщение - не могу понять .."В тег option добавь value с id категории"
    Так чтоли?
    PHP:
    1. ("<option value='%s'>%s</option>", $categ['id'], $categ['name'])
    --- Добавлено ---
    Вовсе нет :) Может плохо искал.. Я уже просил одного человека из форума дать наводку, с чего начинать, но он в ответ сказал просто не читать Попова
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    если в value попадает id то ты сделал всё верно.

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

    Основы можно за неделю понять. Вот уже зная их, тут смогут помочь быстрее, так как вопросы у тебя будут более правильные.
     
    Cyrius нравится это.
  9. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    @denis01 спасибо большое!
     
  10. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Ты думаешь откуда мы всё знаем. Либо учитель книгу пересказал и мы потом ещё их перечитали с документацией или сразу сами читали книги и документацию.
     
  11. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    А по какой книге вы учились? Может подскажите, я тогда ту и выберу
     
  12. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    denis01, я думаю, давно учился. Как и я. Сейчас php уже другой. Поэтому он и посоветовал тебе новую книгу взять. И по php, и по mysql, чтоб были описаны принципы построения связей между таблицами. Те вопросы, которые ты задаёшь - самые основы
     
  13. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    @mkramer хорошо , спасибо. А как мне правильно составить запрос mysql . Вот код формы:
    PHP:
    1. <form action="creating_material.php" method="post" name="form1" id="form1">
    2.        <p>Выберите категорию: <select>
    3.        <?php
    4.        $db =  mysql_connect("localhost","php","12345")or die(mysql_error());
    5.   mysql_select_db("gr2", $db)or die(mysql_error());
    6.   mysql_set_charset( 'utf8' );
    7.   $res = mysql_query("SELECT * FROM `categories`",$db)or die(mysql_error());
    8.   $categ = mysql_fetch_array($res);
    9.      
    10.        do {
    11. printf ("<option value='%s'>%s</option>",$categ['id'], $categ['name']);
    12. }
    13. while ($categ = mysql_fetch_array($res));
    14.      
    15.        ?>
    16.        </select></p>
    17.         <p>
    18.           <label>Введите название:
    19.           <input type="text" name="name" id="name" /></label>
    20.         </p>
    21.          <p>
    22.           <label >Введите краткое описание:
    23.           <input type="text" name="description" id="description" /></label>
    24.         </p>
    25.          <p>
    26.           <label>Введите полное описание:
    27.           <textarea name="text" id="text"></textarea></label>
    28.         </p>
    29.         <p>
    30.           <input type="submit" name="submit" id="submit" value="Создать" />
    31.         </p>
    32.        </form>

    Чтобы вставить именно в НУЖНУЮ категорию, как надо записать mysql_query ?
    --- Добавлено ---
    Я думаю -
    PHP:
    1. mysql_query ("INSERT INTO `materials` (`name`,`description`,`text`) VALUES ('".$_POST['name']."','".$_POST['description']."','".$_POST['text']."') WHERE id=''     '");
    А в поле id = что вставлять
     
  14. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    И еще я не понимаю как вывести именно те материалы, которые соответствуют выбранной категории...
    --- Добавлено ---
    PHP:
    1.  $db =  mysql_connect("localhost","php","12345")or die(mysql_error());
    2.   mysql_select_db("gr2", $db)or die(mysql_error());
    3.   mysql_set_charset( 'utf8' );
    4.  
    5.   $res = mysql_query("SELECT * FROM `categories`",$db)or die(mysql_error());
    6.   $categ = mysql_fetch_array($res);
    7.  
    8.   $res2 = mysql_query("SELECT * FROM `materials` WHERE category_id='".$categ['id']."'  ",$db)or die(mysql_error());
    9.   $materials = mysql_fetch_array($res2);
     
  15. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    @Cyrius, вы не поняли. Пока вы не знаете, что такое реляционная база данных, реляционные связи, мы с вами не сможем говорить на одном языке. Купите и прочитайте книгу
     
  16. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Я учился 4 года в институте, там были методички + учителя.
    Открой любой курс по информатике, там будет много предметов по математики/математическая логика (графы, считаю это важно), физике, технологиям программирования, ООП, безопасность, теория информации, теория базы данных, отдельно sql, C++, html, компьютерная графика (показывали фильм про якудз даже:D) и т. д.
    После такой накачки теорией и решения разных математических задачек можно уже приступать к книгам по PHP для новичков.
    Дальше всё идёт как по маслу.
     
  17. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    @denis01 Спасибо)
    --- Добавлено ---
    @mkramer со всей возможной поспешностью! :)
    Спасибо за советы
     
  18. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
  19. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    на первое время хватит если ты всё понял и всё получается.
     
  20. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Похоже на правду. Но вы ведь не Access пользоваться будете? Теперь надо купить (скачать) книжку и почитать, как всё это делается в mysql
     
  21. Cyrius

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

    С нами с:
    3 июл 2016
    Сообщения:
    98
    Симпатии:
    4
    Уже одну книгу заказал по mysql, буду двигаться)
     
    denis01 нравится это.