PHP&;MySQL显示问题
我有一个显示类别的脚本,但我希望该脚本只显示用户选择的某些类别,范围从1到多个类别。我需要对脚本做什么来修复此问题?举个例子会有很大帮助 这是我的PHP脚本PHP&;MySQL显示问题,php,mysql,Php,Mysql,我有一个显示类别的脚本,但我希望该脚本只显示用户选择的某些类别,范围从1到多个类别。我需要对脚本做什么来修复此问题?举个例子会有很大帮助 这是我的PHP脚本 function make_list ($parent = 0, $parent_url = '') { global $link; echo '<ol>'; foreach ($parent as $id => $cat) { $url = $parent_url . $cat[
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]);
这是我评论的类别列表,我想显示哪些类别
Antiques
Antiquities
Architectural & Garden
Asian Antiques
Books & Manuscripts
Decorative Arts
Ethnographic
Furniture // I want to select this category
Home & Hearth
Linens & Textiles
Restoration & Care // I want to select this category
Rugs & Carpets // I want to select this category
Science & Medicine
Silver // I want to select this category
Reproduction Antiques
将查询更改为类似这样的内容,您需要获取category id的insert themes in子句
SELECT * FROM categories WHERE categories IN(1,5,10,12) ORDER BY parent_id, category ASC
我同意上一篇关于使用IN子句的帖子。不过,只需动态地将它们添加到查询中即可。因此,每当用户单击某个类别时(无论您如何允许他们这样做),您都可以将该类别的ID添加到数组中。然后使用PHP的内爆函数之类的函数创建一个逗号分隔的列表
内爆(“,”,$array)
所以你的查询字符串看起来像
$string = "SELECT * FROM categories WHERE categories IN(" . implode(",", $selectedCats) . ") ORDER BY parent_id, category ASC"
现在我得到了this error
mysqli_error()正好需要1个参数,0给定
基本相同,只是添加了您建议的内容,我得到了与其他成员答案相同的错误。嗯,得到mysqli_error()错误意味着初始查询不起作用。两件事:1)检查mysqli_error()的文档。它至少需要一个参数。2) 然后,mysqli_query()调用中出现了一些错误。我正在看文档,看起来只要一个字符串参数就好了。尝试类似于$query=“从类别中选择*,类别在(“.infrade(“,”,$selectedCats)。”)中按父项排序,类别ASC”$dbc=mysqli_query($query);我想这可能是我的函数make_list()
或while()
我只是不知道它是什么?你键入的类别ID正确吗?我编了那个数字作为参考。
$string = "SELECT * FROM categories WHERE categories IN(" . implode(",", $selectedCats) . ") ORDER BY parent_id, category ASC"