Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP&;MySQL显示问题_Php_Mysql - Fatal编程技术网

PHP&;MySQL显示问题

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[

我有一个显示类别的脚本,但我希望该脚本只显示用户选择的某些类别,范围从1到多个类别。我需要对脚本做什么来修复此问题?举个例子会有很大帮助

这是我的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]);
这是我评论的类别列表,我想显示哪些类别

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"