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

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

  • AdmBuxonly

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

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

    ну, пока через базу, потом через админку буду….
  • Givi

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

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

    AdmBuxonly
    Ну так вот АйДи раздела добавлять нужно не когда категорию создаете, а когда добавляете книгу. Вам ведь не категории к книгам привязать, а наоборот - книги к категориям. Так что получается примерно такое: когда добавляется книга, то есть поле выбора категории, и id выбраной категории для книги подставляется в id_book самой записи о книге. Это если через админку делать (ну или другой интерфейс, кроме как в базу напрямую). А если сходу в базу руками нуно, то смотрите на id категории, запоминаете её, и когда добавляете книгу, то вносите id_book как id категории из своей памяти :)
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 17:27, спустя 6 минут 15 секунд

    Ок, спс. ща сделаю…. тока с запросом проблемы будут…

    <?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 г. 17:38, спустя 11 минут 28 секунд

    <?php 
    include('config.php');
    if (isset($_GET['id'])) {$id = $_GET['id'];}
    $result = mysql_query("SELECT * FROM viewbook WHERE id='$id'");
    $myrow = mysql_fetch_array($result);
    do
    {
    printf("<table align='center' border='0' cellpadding='0' cellspacing='0' width='500'>
    <tr><td>
    <table width='500' border='0' cellspacing='0' cellpadding='0'>
    <tr>
    <td bgcolor='#E4E4ED' class='style4' scope='col'><p>Название: <a href='http://money.buxonly.com/viewbooks.php?id=%s'>%s</a></p></td>
    </tr>
    <tr>
    <td bgcolor='#F0F0F0' class='style4' scope='row'><br><p align='justify'><b>Описание:</b> %s</p><br><p><b>Автор: </b>%s</p></td>
    </tr>
    </table>
    </td></tr></table><br>", $myrow['id'], $myrow['title'], $myrow['opisanie'], $myrow['avtor']);
    }
    while ($myrow = mysql_fetch_array($result));




    ?>


    это http://money.buxonly.com/viewbook.php?id=
  • adw0rd

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

    Spritz 2 января 2009 г. 17:44, спустя 5 минут 43 секунды


    Ок, спс. ща сделаю…. тока с запросом проблемы будут…

    <?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>
         
    ";
    }
    ?>


    вот что есть сейчас


    Обратите внимание на две строки
    $result = mysql_query("SELECT id,title,location FROM book WHERE location='l'");
    и
    <a href='http://money.buxonly.com/viewbook.php?id={$myrow['id_book']}'>{$myrow['title']}</a>

    у вас в первой строке отсутствует "id_book", однако во второй вы его вызываете. Как так?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 17:47, спустя 3 минуты 39 секунд

    Так ведь в таблице book нет поля id_book. Я сейчас всяко пробую, но не могу зацепить id_book за категорию. Вот тут: http://money.buxonly.com/book.php
  • Givi

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

    Spritz 2 января 2009 г. 17:56, спустя 9 минут 5 секунд

    AdmBuxonly
    …$result = mysql_query("SELECT * FROM viewbook WHERE id='$id'");…
    А потом и вовсе вот таким образом пытаетесь выбрать не книги из категории, а книгу по определенному id.

    Поля нет, но GET-переменную, как впрочем и любую другую, Вы можете назвать как Вам угодно, но лучше называть так, чтоб было и наглядно и не много букаф. Следовательно, мы её для удобства называем id_book, но в себе она будет нести не что иное, как id категории из таблицы book, следовательно… ДУМАЙТЕ.
    Пока не решите эту задачу (постановка правильных переменных), лично я не буду подсказывать Вам ничего по этой теме. Потому как нужно включать голику, иначе это даже не кодинг (тем более не программирование) - это переписывания кода из одного (чужого) файла в свой.



    Сделаете это, подскажу как уменьшить количество запросов в БД как минимум на один лишний.
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 18:05, спустя 8 минут 28 секунд

    if (isset($_GET['id'])) {$_GET['id_book'] = $_GET['id'];}
    $result = mysql_query("SELECT * FROM viewbook WHERE id_book='{$_GET['id_book']}'");


    А так правильно?
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 18:10, спустя 4 минуты 39 секунд

    А как мне для категории id подцепить? ща тоже потужусь, мож придумаю…
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 18:15, спустя 4 минуты 57 секунд

    ЯХУУУУ!!!! Получилось!!!
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 18:15, спустя 27 секунд

    http://money.buxonly.com/book.php зацените!! Пасибо!!
  • AdmBuxonly

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

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

    Сделаете это, подскажу как уменьшить количество запросов в БД как минимум на один лишний.



    Говори, я весь во внимании ))
  • Givi

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

    Spritz 2 января 2009 г. 18:17, спустя 21 секунду

    AdmBuxonly
    Уже значительно лучше, НО!… не нужно создавать внутри одного скрипта GET-переменных, достаточно просто сделать так:
    if (isset($_GET['id'])) {$id_book = $_GET['id'];}

    Но все же лучше не юзать для выбора по категориям $_GET['id'], то есть, лучше делать не …viewbook.php?id=…, а …viewbook.php?id_book=…, так как …viewbook.php?id=… в будущем Вы сможете (и наверняка будете) использовать для выбора подробного описания книги.

    п.с. $result = mysql_query("SELECT * FROM viewbook WHERE id_book='{$_GET['id_book']}'"); - а зачем в запросе знаки "{" и "}" ?!

    Покажите мне, со своими объяснениями, по очереди:
    1. Запрос на выборку любой из колонок категорий + Ваши объяснения что и зачем делаете
    2. Ссылку(и) на категории + Ваши объяснения что и зачем делаете
    3. Запрос на выборку книг из выбранной категории + Ваши объяснения что и зачем делаете
    Это нужно для того, чтоб Вы поняли что Вы делаете. Тогда Вам будет легче, поверьте на слово.
  • Givi

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

    Spritz 2 января 2009 г. 18:19, спустя 2 минуты 12 секунд

    AdmBuxonly
    Сек, я совсем потерялся. Вы сделали не выборку книг из категории, а вывод подробного описания книги. Насколько понимаю, Вы даже сами непонимаете, что хотели добиться не этого :)

    По сокращению запроса: Вы ещё не добились результата.

    п.с. Можно в аську перейти, дабы не захламлять форум.
  • AdmBuxonly

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

    Spritz 2 января 2009 г. 18:35, спустя 15 минут 55 секунд

    Первая страница http://money.buxonly.com/book.php. На ней находятся различные категории. Для их вывода я использую следующий скрипт:


    <!– Начало скрипта –>
    <?php

    // подключаем конфигурационный файл
    include_once('config.php');

    // заносим в переменныю $result запрос на вывод категорий из базы в правую ячейку таблицы
    $result = mysql_query("SELECT id,title,location FROM book WHERE location='r'");

    // Рассмотрим запрос:
    // mysql_query осуществляет SQL запрос к нашей базе данных
    // SELECT этот оператор говорит о том, что мы делаем запрос на выделение "чего-то" из базы
    // id,title,location поля, которые мы вибрали для использования их содержимого в скрипте
    // Далее выбираем таблицу, где хранятся поля id,title,location и операторм FROM (из) вибираем таблицу book
    // Затем указываем какие именно поля нам нужно вытащить из таблицы 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']}'>{$myrow['title']}</a></p></td>
          </tr>
          <tr>
          <td bgcolor='#F0F0F0' class='style4' scope='row'><p>Количество: </p></td>
          </tr>
          </table>
          <br />";
    }
    ?>
    <!– Конец скрипта –>


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