Php 选择某一类别和品牌的产品
我有一个查询,我想选择在url上选择了类别和品牌的所有产品: 这给了我一个错误 警告:第32行C:\wamp\www\www.fermaster.pt\pages\listaProdutos.php中的非法字符串偏移量“nomeProduto” 完整代码为: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';
<?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'];
}
由于/
元素,我认为您必须首先对字符串进行转义。MySQLsQUOTE()
函数是您在这里的朋友。检查关于该主题的。该错误表示$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'];
}