-
Conteúdo Similar
-
Por Luiz Henrique
Olá,
Fiz um sistema de busca para preços, e a mesma será realizada em tags, porém como o conteúdo é estático e não há necessidade de segurança é gerado um json para não precisar consultar o DB toda hora, segue parte do código:
... foreach ($data as $key => $value) { if (strpos($value->$alvo, $valor) !== false) { $array[] = [ ... ]; } } ... O código é simples, é um foreach para percorrer o json e se encontrar a busca, cria um array com as informações, ok.
Mas queria uma busca com no mysqli, algo semelhante ao %LIKE%, existe alguma forma de eu fazer isso no php?
Porque da forma que fiz só funciona se digitar a palavra inteira na busca.
Ex:
Quero buscar "computador", não consigo digitar as 4 primeiras letras da busca: "comp", precisa ser "computador".
Obrigado.
-
Por thiago_tw
eu to com uma tarefa que preciso de ajuda, já tentei alguns algoritmos que achei por aqui mas nunca dá certo, mandei a imagem do que é para ser feito, agradecido se me ajudarem
-
Por BGSJunior
Olá!
Tenho uma tabela com os campos id, servico e valor. Preciso somar os valores contidos nos campos 'valor' de acordo com os filtros aplicados. Veja:
SELECT *, SUM(valor) AS totalValores FROM financeiro_entrada WHERE servico LIKE "%suporte%"
Acima quero mostrar todos os serviços do tipo "suporte" e o campo 'totalValores' com o total dos serviços em cada registro encontrado. Assim:
Qual SQL devo criar para mostrar os registros acima? O SQL que fiz mostra apenas um registro. Assim:
Preciso mostrar todos os registros que contenha 'suporte' como serviço. Assim:
-
Por Carlos Antoliv
Então, eh algo até simples, problema de lógica e tudo. Eu tinha feito, mas o codigo sumiu do nada e nao lembro mais da lógica que eu empregara.
O enredo éh assim
tabela_grupo_produtos
e
tabela tabela_produtos
Na tabela_grupo_produtos tem:
- informatica;
- eletrodomestico;
- brinquedos;
na tabela_produtos tem os podutos que são ligados a tabela de grupo de grupo de produtos:
- informatica->notebook
- informatica->computador
- informatica->roteador
- eletrodomestico->geladeira
- eletrodomestico->microondas
- eletrodomestico->fogao
- brinquedos->lego
- brinquedos->boneca
- brinquedos->carrinhos
O que estou tentando fazer é o seguinte:
- informatica->notebook
->computador
->roteador
- eletrodomestico->geladeira
->microondas
->fogao
- brinquedos- >lego
-> boneca
->carrinhos
Ou seja, mostra na tela pelo "GRUPO" de produtos.
fiz um select no banco....
e tambem um foreach, mas tem algo que ta errado.
Cheguei até executar dois selects distintos:
EXEMPLO:
<!--#################### CÓDIGO SESSÃO ################################ -->
<?php session_start(); echo "Usuario: ". $_SESSION['usuarioNome']; echo "<br>"; echo "Codigo: ". $idSessao = $_SESSION['usuarioId']; ?>
<br>
<a href="sair.php">Sair</a> <!-- #####################FIM CODIGO SESSÃO ############################### --> <?php $servername = "localhost"; $username = "root"; $password = ""; $database = ""; try { $conexao2 = new PDO('mysql:host=localhost;dbname=banco', $username, $password); $conexao2->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } $sql2 = "SELECT pdos.fk_usuarios, pdos.nome_prod, pdo.nome_produto, nome_grupo_prod, pdos.foto, pdos.desc_prod, pdos.peso_liq_prod, pdos.qtd_prod, pdos.id_prod, pdos.un_medida FROM tb_produtos AS pdos JOIN tb_produto AS pdo ON pdos.nome_prod = pdo.id_produto JOIN tb_grupo_prod AS gpdo ON gpdo.id_grupo_prod = pdos.fk_tb_grupo_prod INNER JOIN usuarios As usu ON pdos.fk_usuarios = usu.id "; $stm2 = $conexao2->prepare($sql2); $stm2->execute(); $kit3 = $stm2->fetchAll(PDO::FETCH_OBJ); ?> <?php require 'database/conexao.php'; // Recebe o termo de pesquisa se existir $termo = (isset($_GET['termo'])) ? $_GET['termo'] : ''; // Verifica se o termo de pesquisa está vazio, se estiver executa uma consulta completa if (empty($termo)): $conexao = conexao::getInstance(); $sql = 'SELECT DISTINCT item.fk_tb_produtos, usu.nome, prod.nome_produto, prods.desc_prod, prods.peso_liq_prod, prods.un_medida, item.fk_tb_kit, kit.nome_kit, kit.preco_kit, prods.qtd_prod, kit.id_nome_kit, kit.desc_kit FROM tb_itemprodkit item /* tb_itemprodkit*/ INNER JOIN usuarios usu /* usuarios*/ ON item.fk_usuarios = usu.id INNER JOIN tb_produtos prods /* tb_produtos */ ON item.fk_tb_produtos = prods.id_prod INNER JOIN tb_kit kit /*tb_kit */ ON item.fk_tb_kit = kit.id_nome_kit INNER JOIN tb_produto prod ON prods.nome_prod = prod.id_produto WHERE fk_usuario = 5 GROUP BY kit.id_nome_kit '; $stm = $conexao->prepare($sql); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); else: // Executa uma consulta baseada no termo de pesquisa passado como parâmetro $conexao = conexao::getInstance(); $sql = 'SELECT * FROM tb_kit WHERE nome_kit LIKE :nome_kit OR desc_kit LIKE :desc_kit'; $stm = $conexao->prepare($sql); $stm->bindValue(':nome_kit', $termo.'%'); $stm->bindValue(':desc_kit', $termo.'%'); $stm->execute(); $kit = $stm->fetchAll(PDO::FETCH_OBJ); endif; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Listagem KITs </title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="css/custom.css"> </head> <body> <div class='container'> <fieldset> <!-- Cabeçalho da Listagem --> <legend><h1>Listagem de Kits</h1></legend> <!-- Formulário de Pesquisa --> <form action="" method="get" id='form-contato' class="form-horizontal col-md-10"> <label class="col-md-2 control-label" for="termo">Pesquisar</label> <div class='col-md-7'> <input type="text" class="form-control" id="termo" name="termo" placeholder="Infome o Nome ou E-mail"> </div> <button type="submit" class="btn btn-primary">Pesquisar</button> <a href='index.php' class="btn btn-primary">Ver Todos</a> </form> <!-- Link para página de cadastro --> <a href='kit_cadastro.php' class="btn btn-success pull-right">Cadastrar Kit</a> <div class='clearfix'></div> <?php if(!empty($kit)):?> <!-- Tabela de Clientes --> <table class="table table-striped"> <tr class='active'> <th>Foto</th> <th>produto</th> <th>Nome</th> <th>Descrição</th> <th>Preço</th> <th>Ação</th> </tr> <?php foreach($kit as $kit2):?> <tr> <td><img src='fotos/<?=$kit2->foto?>' height='40' width='40'></td> <?php foreach($kit3 as $kit4):?> <td> <?=$kit4->nome_produto.'<br>'; ?> </td><?php endforeach; ?> <td><?=$kit2->nome_kit?></td> </td> <td><?=$kit2->desc_kit?></td> <td><?='R$ '.$kit2->preco_kit.',00'?></td> <td> <a href='kit_editar.php?id_nome_kit=<?=$kit2->id_nome_kit?>' class="btn btn-primary">Editar</a> <a href='javascript:void(0)' class="btn btn-danger link_exclusao" rel="<?=$kit2->id_nome_kit?>">Excluir</a> </td> </tr> <?php endforeach;?> </table> <?php else: ?> <!-- Mensagem caso não exista clientes ou não encontrado --> <h3 class="text-center text-primary">Não existe Kit cadastrados!</h3> <?php endif; ?> </fieldset> </div> <script type="text/javascript" src="js/custom.js"></script> </body> </html>
....se alguem puder ajudar...
-
Por eliasfarias
Preciso pegar um resultado de uma soma a partir de uma variável predefinida antes.
ex:
$valor=500
$consulta = $pdo->query("SELECT* FROM produtos where status_pago='0' ");
while ($resultado = $consulta ->fetch(PDO::FETCH_ASSOC)) {
//listar um número de linhas cuja soma de todos os produtos juntos fosse igual a variável $valor
}
Se alguém puder me dar uma luz agradeço,
Obrigado.
-