ФорумПрограммированиеPHP для идиотов → Проблемы с навигацией

Проблемы с навигацией

  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 1 января 2009 г. 20:57, спустя 8 минут 32 секунды

    AdmBuxonly, чувак, у тебя в разных таблица могут быть одинаковые ид. Зачем тебе несколько таблиц?
    "book_left" и "book_right", почему не одна "book"?

    ——-

    Блин, а зачем вообще "book_left" и "book_right", если у тебя есть "bookview"??

    добавлено через 2 минуты


    ——-

    а, понял book_left и book_right это разделы типа…

    добавлено меньше минуты назад
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 1 января 2009 г. 20:59, спустя 2 минуты 27 секунд

    Ну потому что у меня две колонки на сайте, где идет вывод http://money.buxonly.com/book.php… И чтобы не заполнялось всегда в одной я бы по очереди закидывал новый радле или книгу в право и в лево… чтоб был баланс между столбцами… ща бордер сделаю 1

    ——-

    Я думаю базу дропнуть и заново таблички с полями намутить…

    добавлено через 2 минуты
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 1 января 2009 г. 21:01, спустя 2 минуты 11 секунд

    кароче тебе надо не "book_left и book_right", а одну "book"
    а в bookview надо хранить ид от book, пример?

    CREATE TABLE IF NOT EXISTS `viewbook` (
     `id` int(11) NOT NULL auto_increment,
     `id_book` int(11) NOT NULL auto_increment,
     `title` varchar(255) NOT NULL,
     `opisanie` text NOT NULL,
     `avtor` varchar(255) NOT NULL,
     `meta_d` text NOT NULL,
     `meta_k` text NOT NULL,
     `text` text NOT NULL,
     `url` varchar(255) NOT NULL,
     PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 ;


    где id_book - ид от поля id таблицы book

    ——-

    AdmBuxonly, не выдумывай велосипедов… это потомучто фигня… храни разделы в одной таблице, а вывод делай при помощи PHP/JS

    добавлено через 1 минуту
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 1 января 2009 г. 21:05, спустя 3 минуты 45 секунд

    bookview - хронит все о книга(заголовок, описание, ссылки и т.д.)
    book_right\left - хранят заголовки категорий

    ——-


    кароче тебе надо не "book_left и book_right", а одну "book"
    а в bookview надо хранить ид от book, пример?

    CREATE TABLE IF NOT EXISTS `viewbook` (
     `id` int(11) NOT NULL auto_increment,
     `id_book` int(11) NOT NULL auto_increment,
     `title` varchar(255) NOT NULL,
     `opisanie` text NOT NULL,
     `avtor` varchar(255) NOT NULL,
     `meta_d` text NOT NULL,
     `meta_k` text NOT NULL,
     `text` text NOT NULL,
     `url` varchar(255) NOT NULL,
     PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 ;


    где id_book - ид от поля id таблицы book




    #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key
    вот такое выдает…
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 1 января 2009 г. 21:06, спустя 1 минуту

    сделай так

    bookview - хронит все о книга(заголовок, описание, ссылки и т.д.)
    book_right\left - хранят заголовки категорий


    ——-

    AdmBuxonly, ссорь, вино на мозг влияет :-)

    CREATE TABLE IF NOT EXISTS `viewbook` (
    `id` int(11) NOT NULL auto_increment,
    `id_book` int(11) NOT NULL,
    `title` varchar(255) NOT NULL,
    `opisanie` text NOT NULL,
    `avtor` varchar(255) NOT NULL,
    `meta_d` text NOT NULL,
    `meta_k` text NOT NULL,
    `text` text NOT NULL,
    `url` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ;


    а вот так?))

    добавлено меньше минуты назад
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 12:10, спустя 15 часов 3 минуты 37 секунд


    сделай так

    bookview - хронит все о книга(заголовок, описание, ссылки и т.д.)
    book_right\left - хранят заголовки категорий


    ——-

    AdmBuxonly, ссорь, вино на мозг влияет :-)

    CREATE TABLE IF NOT EXISTS `viewbook` (
    `id` int(11) NOT NULL auto_increment,
    `id_book` int(11) NOT NULL,
    `title` varchar(255) NOT NULL,
    `opisanie` text NOT NULL,
    `avtor` varchar(255) NOT NULL,
    `meta_d` text NOT NULL,
    `meta_k` text NOT NULL,
    `text` text NOT NULL,
    `url` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 ;


    а вот так?))

    добавлено меньше минуты назад



    Все работает…

    ——-

    А почему id поля id_book всегда равен 0? И там ошибки создаются….

    Вставлено строк: 1.
    Идентификатор вставленной строки: 4
    Warning: #1366 Incorrect integer value: '' for column 'id_book' at row 1

    INSERT INTO `barosha_klub`.`viewbook` (
    `id` ,
    `id_book` ,
    `title` ,
    `opisanie` ,
    `avtor` ,
    `meta_d` ,
    `meta_k` ,
    `text` ,
    `url`
    )
    VALUES (
    NULL , '', '432', '423423423', '234234', '23423423', '4234234', '23423423', '23423432'
    );


    добавлено через 8 минут


    ——-

    И как можно запихать ид book в ид id_book?

    добавлено через 11 минут


    ——-

    Не получается…. ((

    добавлено через 41 минуту


    ——-

    Ребят, вы куда пропали? Помогите с навигацией разобраться…. БД создал…. А что в файлах писать не пойму…..и как ид запихать в id_book тоже не пойму…

    добавлено через 14 часов
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 2 января 2009 г. 14:56, спустя 2 часа 46 минут 33 секунды

    Ну тебе туда надо вбивать ид раздела, как вбивать… ну например при создании записи указывай раздел и добавляй ид_раздела
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 2 января 2009 г. 14:59, спустя 2 минуты 37 секунд

    AdmBuxonly
    Читал, читал и тоже не до конца понял нафиг нужно две таблицы с "райт и лефт". Потому предлагаю сделать общую таблицу, только с тремя полями: id, title, location (тут название как Вам удобнее. В поле будет храниться значение "l" или "r", например). В первые две клепаем то, что уже есть, не забывая сделать поле id автоинкрементным. Тогда у Вас не будет совпадений по АйДи и не будет гемороя в отборе книг. Это если сейчас и не присутствует (всмысле, геморой с отбором), то в будущем обьязательно появится в какой-то из работ, так как ожнотипные данные должны хранится в одном месте, кроме случаев исключения (у Вас их нет).
    В таблице viewbook создаете поле id_book (или подобное), куда будет заноситься id категории из таблицы book_left и book_right, которые, как мы уже помним, будут одной таблицей, которую назовем, к примеру, просто book.

    Теперь вывод данных:
    1. Для левой колонки деаем запрос на вывод всех категорий левой колонки - SELECT * FROM book WHERE location="l";
    2. Для правой колонки деаем запрос на вывод всех категорий правойколонки - SELECT * FROM book WHERE location="r";
    3. Из выбранных данных делаем ссылки-навигацию - <a href="viewbook.php?id_book=array_book['id']">array_book['title']</a>
    4. При нажатии на ссылку получаем GET-переменную категории, и делаем выборку книг, которые соответствуют выбранной категории - SELECT * FROM viewbook WHERE id_book='.$_GET['id_book'].';
    5. Пьем пиво за успешный вывод категорий и книг из онных.

    Очередность выполнения раставьте сами, так как тут все зависит от архитектуры вашей системы, но 5-ый пункт должен выполняться самым последним :)



    В общем, не успеваю писать, как уже посвялются новые записи + есть глюк у форума (укажу в другом разделе или в личку администрации дабы тут не флудить).

    В целом, уже указаны все необходимые изменения в сторону правильной работы. Осталось Вам, ТС, немного подумать как и что и куда вставлять. А для этого предлагаю прочитать о древовидном выводе категорий.
    п.с. Желательно самому разобраться с элементарным, иначе на более трудных задачах и вовсе "загнетесь".
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 16:12, спустя 1 час 12 минут 48 секунд

    Сейчас буду писать свои действия, как только ошибусь тормозните меня иначе я опять тупану….

    1. Создал таблицу viewbook:


    CREATE TABLE IF NOT EXISTS `viewbook` (
    `id` int(11) NOT NULL auto_increment,
    `id_book` int(11) NOT NULL,
    `title` varchar(255) NOT NULL,
    `opisanie` text NOT NULL,
    `avtor` varchar(255) NOT NULL,
    `meta_d` text NOT NULL,
    `meta_k` text NOT NULL,
    `text` text NOT NULL,
    `url` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=5 ;


    2. Создал таблицу Book


    CREATE TABLE IF NOT EXISTS `book` (
    `id` int(11) NOT NULL auto_increment,
    `title` varchar(255) NOT NULL,
    `location` varchar(1) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=3 ;


    Проверьте, так?
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 2 января 2009 г. 16:20, спустя 7 минут 50 секунд

    AdmBuxonly, удали AUTO_INCREMENT=5 и AUTO_INCREMENT=3
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 16:25, спустя 5 минут 6 секунд

    adw0rd, удалил.. А теперь смертельный номер: приступаю к выводу из бд
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 16:30, спустя 5 минут 24 секунды

    Это будет вывод для левой ячейки…

    <?php 

    include_once('config.php');

    $result = mysql_query("SELECT id,title,location FROM book WHERE location='l'");
    while ($myrow = mysql_fetch_array($result)) {
    print "<table width='250' border='0' cellspacing='0' cellpadding='0'>
    <tr>
    <td bgcolor='E4E4ED' class='style4' scope='col'><p>Категория:<a href='http://money.buxonly.com/viewbook.php?id={$myrow['id_book']}'>{$myrow['title']}</a></p></td>
    </tr>
    <tr>
    <td bgcolor='#F0F0F0' class='style4' scope='row'><p>Количество: </p></td>
    </tr>
    </table>
    <br />";
    }
    ?>
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 16:44, спустя 13 минут 36 секунд

    Это правая…

    <?php 

    include_once('config.php');

    $result = mysql_query("SELECT id,title,location FROM book WHERE location='r'");
    while ($myrow = mysql_fetch_array($result)) {
    print "<table width='250' border='0' cellspacing='0' cellpadding='0'>
    <tr>
    <td bgcolor='E4E4ED' class='style4' scope='col'><p>Категория:<a href='http://money.buxonly.com/viewbook.php?id={$myrow['id_book']}'>{$myrow['title']}</a></p></td>
    </tr>
    <tr>
    <td bgcolor='#F0F0F0' class='style4' scope='row'><p>Количество: </p></td>
    </tr>
    </table>
    <br />";
    }
    ?>
  • AdmBuxonly

    Сообщения: 370 Репутация: N Группа: Кто попало

    Spritz 2 января 2009 г. 16:59, спустя 15 минут

    Вот тока не пойму, как автоматом вставлять id раздела в id_book просмотра этого раздела…А можно как то сразу и выводить и вставлять в бд одним запросом…?? Можно при добавлении раздела сразу занести id раздела в id_book. Тока как это через один запрос сделать…???  А так все работает http://money.buxonly.com/book.php
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 2 января 2009 г. 17:03, спустя 4 минуты

    AdmBuxonly, расскажи как ты добавляешь новую книгу и новый раздел.
    https://smappi.org/ - платформа по созданию API на все случаи жизни

Пожалуйста, авторизуйтесь, чтобы написать комментарий!