Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 选择某一类别和品牌的产品_Php_Mysql - Fatal编程技术网

Php 选择某一类别和品牌的产品

Php 选择某一类别和品牌的产品,php,mysql,Php,Mysql,我有一个查询,我想选择在url上选择了类别和品牌的所有产品: 这给了我一个错误 警告:第32行C:\wamp\www\www.fermaster.pt\pages\listaProdutos.php中的非法字符串偏移量“nomeProduto” 完整代码为: <?php $db = new Database(); $db->connect(); if(isset($marca)) { echo 'Produto - Categoria - Marca';

我有一个查询,我想选择在url上选择了类别和品牌的所有产品:

这给了我一个错误

警告:第32行C:\wamp\www\www.fermaster.pt\pages\listaProdutos.php中的非法字符串偏移量“nomeProduto”

完整代码为:

<?php
$db = new Database();    
$db->connect();


if(isset($marca))
{
    echo 'Produto - Categoria - Marca';
    $db->sql("SELECT prod.*
              FROM produtos as prod
              INNER JOIN categorias as cat
                ON cat.nomeCategoria LIKE '".$categoria."'
              INNER JOIN marcas as m
                ON m.nomeCategoria LIKE '".$marca."'
              WHERE prod.categoriaProduto = cat.ID
                    AND prod.marcaProduto = m.ID");
}
else
{
    echo 'Produto - Categoria';
    $db->sql("SELECT prod.*
              FROM produtos as prod
              INNER JOIN categorias as cat
                ON cat.nomeCategoria LIKE '".$categoria."'
              WHERE prod.categoriaProduto = cat.ID");
}

$res = $db->getResult();

foreach($res as $output)
{
    echo '<br />'.$output['nomeProduto'];
}

由于
/
元素,我认为您必须首先对字符串进行转义。MySQLs
QUOTE()
函数是您在这里的朋友。检查关于该主题的。

该错误表示
$output['nomeProduto']在数组/对象中不存在您应该执行的
print\r($res)就在foreach语句之前,查看结果并将其发布到此处。这会将结果打印为可读数组。
<?php
$db = new Database();    
$db->connect();


if(isset($marca))
{
    echo 'Produto - Categoria - Marca';
    $db->sql("SELECT prod.*
              FROM produtos as prod
              INNER JOIN categorias as cat
                ON cat.nomeCategoria LIKE '".$categoria."'
              INNER JOIN marcas as m
                ON m.nomeCategoria LIKE '".$marca."'
              WHERE prod.categoriaProduto = cat.ID
                    AND prod.marcaProduto = m.ID");
}
else
{
    echo 'Produto - Categoria';
    $db->sql("SELECT prod.*
              FROM produtos as prod
              INNER JOIN categorias as cat
                ON cat.nomeCategoria LIKE '".$categoria."'
              WHERE prod.categoriaProduto = cat.ID");
}

$res = $db->getResult();

foreach($res as $output)
{
    echo '<br />'.$output['nomeProduto'];
}