Вопрос по PHP и MySQL

#php #mysql

#php #mysql

Вопрос:

У меня есть этот скрипт, который зацикливается на создании дерева категорий. Но я хочу, чтобы он отображал определенные категории, которые выбирает пользователь, как в примере ниже. Кстати, скрипт зацикливается, чтобы создать URL-ссылку на категорию.

Полагаю, я пытаюсь сказать, что я просто хочу знать, как отображать определенные категории и их полный URL?

Вот пример.

 Found In Category:  Books amp; Authors, Html, Web design
  

Вот мой PHP-скрипт.

 function make_list ($parent = 0, $parent_url = '') {
    global $link;
    echo '<ol>';

    foreach ($parent as $id => $cat) {
        $url = $parent_url . $cat['url'];
        echo '<li><a href="' . $url . '" title="' . $cat['category'] . ' Category Link">' . $cat['category'] . '</a>';          

        if (isset($link[$id])) {
            make_list($link[$id], $url); // $url adds url value to sub categories
        }               
        echo '</li>';
    }       
    echo '</ol>';
}

$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM categories ORDER BY parent_id, category ASC");
if (!$dbc) {
    print mysqli_error();
} 

$link = array();

while (list($id, $parent_id, $category, $url) = mysqli_fetch_array($dbc)) {
    $link[$parent_id][$id] =  array('category' => $category, 'url' => $url);
}

make_list($link[0]);
  

Комментарии:

1. Я не уверен, что понимаю вопрос. В чем именно ваша проблема здесь? И, возможно, вы могли бы обновить заголовок вашего вопроса, поскольку в настоящее время он на самом деле не описывает проблему.

2. как бы я назвал свой заголовок? Как я могу отобразить определенные категории и их полный URL?

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

4. Вопрос в том, как я могу отобразить определенные категории и их полный URL?

5. В качестве заголовка, возможно, используйте «Как выбрать только определенные записи из таблицы Mysql» или что-то в этом роде, возможно, просто чтобы сделать его немного менее общим

Ответ №1:

Если вы не хотите отображать все категории, а только одну (если я правильно понял), измените:

 $dbc = mysqli_query(
    $mysqli,"SELECT * FROM categories ORDER BY parent_id, category ASC"
);
  

Для

 $cat = mysqli_real_escape_string($_POST['selectedCategory']);
$dbc = mysqli_query(
    $mysqli,
    "SELECT * FROM categories WHERE category = '$cat' ORDER BY parent_id, category ASC"
);
  

Редактировать: отступы для удобства чтения

Правка2:

Для нескольких категорий вы бы использовали

 WHERE category IN('x', 'y', 'z')
  

Пожалуйста, исправьте мой, если вы просили что-то еще 🙂

Комментарии:

1. Это испортит URL-адрес моих категорий, как я могу исправить URL-адрес.

2. Я действительно не понимаю, как, поскольку URL является частью каждой выбранной вами строки, но, возможно, это только у меня… без каких-либо образцов данных я не думаю, что у меня есть еще какие-либо идеи

3. каждая строка содержит часть URL amp;cat=2 и так далее