#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
и так далее