Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Tag's <?php e ?> muito espalhadas

Boa noite. Dei uma olhada no código e tenho algumas dúvidas

<?phpinclude("cabecalho.php"); ?>

<?php
$nome = $_GET['nome'];
$preco = $_GET['preco'];

$conexao = mysqli_connect('localhost', 'root', '', 'loja');
$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

if(mysqli_query($conexao, $query)) { ?>
    <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>
<?php
} 
else
{
     ?>
    <p class="alert-danger">O produto <?= $nome; ?> não foi adicionado</p>
    <?php
}
    mysqli_close($conexao);
?>

<?php include("rodape.php"); ?>

Os abre e fecha do php estão bem espalhados pelo código e fica até meio confuso se vc não entender que o 'p' não ficar dentro do php por ser html porque o if tem as chaves que separem mt bem oque é ou não já nas tag's php estão bem distante e diferentemente posicionadas. Minha pergunta é

Daria erro se eu fizer dessa forma abaixo

<?phpinclude("cabecalho.php"); ?>
<?php
$nome = $_GET['nome'];
$preco = $_GET['preco'];

$conexao = mysqli_connect('localhost', 'root', '', 'loja');
$query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

if(mysqli_query($conexao, $query)) 
 { ?>
    <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>

} 
<?php  else  ?>
{

    <p class="alert-danger">O produto <?= $nome; ?> não foi adicionado</p>

}
<?php
    mysqli_close($conexao);
?>

<?php include("rodape.php"); ?>

Entendo que daria erro pois as { são parte do código php, teria algum outro jeito mais visualmente organizado para colocar as tags? mais ou menos como a cima

1 resposta
solução!

Higor, sim, daria erro por que as chaves precisam estar dentro das tags do PHP.

Tem uma outra forma que elimina o uso das chaves e troca elas por uso de dois pontos e palavras, vejamos o mesmo código com essa outra forma.

<?php 
    include("cabecalho.php");

    $nome = $_GET['nome'];
    $preco = $_GET['preco'];

    $conexao = mysqli_connect('localhost', 'root', '', 'loja');
    $query = "insert into produtos (nome, preco) values ('{$nome}', {$preco})";

    if(mysqli_query($conexao, $query)): 
?>
 <p class="alert-success">Produto <?= $nome; ?>, <?= $preco; ?> adicionado com sucesso!</p>

<?php else: ?>

    <p class="alert-danger">O produto <?= $nome; ?> não foi adicionado</p>

<?php
    endif;
    mysqli_close($conexao);
    include("rodape.php"); 
?>

Olha que eu não apenas troquei as chaves por : como também adicionei o endif.

Além disso, você não precisa abrir e fechar tags php a cada linha de código, por isso também agrupei mais as funções php eliminando mais ainda um pouco desse ruído.

O que achou?