Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro Lista Produto

Pessoal novamente estou com um erro, alguém pode me ajudar?

Parse error: syntax error, unexpected '{' in C:\wamp\www\curso_php\banco-produto.php on line 20

Código do banco-produto.php

<?php
function listaProdutos($conexao) {
    $produtos = array();
    $resultado = mysqli_query($conexao, "select p.*,c.nome as categoria_nome from produtos as p join categorias as c on c.id=p. categoria_id");
    while($produto = mysqli_fetch_assoc($resultado)){
        array_push($produtos, $produto);
    }
    return $produtos;

}

function insereProduto($conexao, $nome, $preco, $descricao, $categoria_id, $usado){
    $query = "insert into produtos (nome, preco, descricao, categoria_id, usado) values ('{$nome}', {$preco}, '{$descricao}', {$categoria_id}, {$usado})";
    $resultadoDaInsercao = mysqli_query ($conexao, $query);
    return $resultadoDaInsercao;
}

function buscaProduto($conexao, $id){
    $query = "select * from produtos where id = {$id}";
    $resultado = mysqli_query{$conexao, $query};
    return mysqli_fetch_assoc{$resultado};
}

function removeProduto($conexao, $id){
    $query = "delete from produtos where id = {$id}";
    return mysqli_query($conexao, $query);
}

Código produto-lista.php

<?php include("cabecalho.php");
 include("conecta.php");
 include("banco-produto.php"); ?>

 <?php
     if(array_key_exists("removido", $_GET) && $_GET["removido"]=="true"){
 ?>
     <p class="alert-success">Produto apagado com sucesso.</p>
 <?php        
     }
?>

<table class="table table-striped table-bordered">
<?php

    $produtos = listaProdutos($conexao);
    foreach($produtos as $produto) {
    ?>
    <tr>
        <td> <?= $produto ['nome'] ?> </td>
        <td> <?= $produto ['preco'] ?> </td>
        <td> <?= substr($produto ['descricao'], 0, 40) ?> </td>
        <td> <?= $produto ['categoria_nome'] ?> </td>
        <td><a class="btn btn-primary" href="produto-altera-formulario.php?id=<?=$produto['id']?>"> alterar</a></td>
        <td>
            <form action="remove-produto.php" method="post">
            <input type="hidden" name="id" value="<?=$produto['id']?>">
            <button class="btn btn-danger"> remover </button>
            </form>
            </td>
    </tr>
    <?php    
    }
    ?>
</table>

<?php include("rodape.php"); ?>
2 respostas
solução!

Oi Rafael, tudo bem?

Eu dei uma olhada no seu código, observe que ele reclama de erro de syntax na linha 20. Verifiquei o seu código e ele contém o seguinte conteúdo:

$resultado = mysqli_query{$conexao, $query};

Veja que você está chamando o método mysql_query portanto, ao invés de usar chave "{}", você precisa usar parenteses "()". Em outras palavras, troque o código para:

$resultado = mysqli_query($conexao, $query);

Veja que logo abaixo você também utiliza chaves no método mysqli_fetch_assoc, provavelmente ele vai alarma um erro de syntax também, faça o mesmo procedimento para esse método também.

Caso tiver outras chamadas dessa forma, troque conforme o exemplo que te passei.

Realmente não percebi isso, muito obrigado.