John Hebert Trindade Posted October 26, 2021 at 09:29 AM Report Share #624337 Posted October 26, 2021 at 09:29 AM Bom dia pessoal, cá estou eu outra vez a pedir vossa ajuda. tenho uma bd e recebo os valores dela através de uma consulta sql, gostaria de: se a variável for vazia imprimir uma frase, se não for vazia imprimir o que lá esta. mais apenas funciona em um registro, nos outros não, o que fiz de errado? a variável $pasta recebe de um select o nome e os campos na bd são do tipo varchar. //Selecionar a bebe da tabela bebes e devolve a descrição $result = "SELECT * FROM `bebes` where `nome` LIKE '%$pasta%'"; $resultado = mysqli_query($con, $result); $rows = mysqli_fetch_assoc($resultado); $peso = $rows['peso']; $altura = $rows['altura']; $kit = $rows['kit']; $escultora = $rows['escultora']; $nascimento = $rows['nascimento']; $descricao = $rows['descricao']; ?> <h1>Album <?php echo ucfirst($name); ?> </h1> <?php if (isset($rows['kit'])) { if (!empty($rows['kit'])) { echo '<h2> Kit '. $kit. ' da escultora ' .$escultora. ', nascido(a) em '. $nascimento. ' e tem '. $peso. ' quilogramas e mede '. $altura.' cm '.$descricao.'.</h2>'; }else { echo '<h2>'.$descricao.'</h2>'; } } ?> Link to comment Share on other sites More sharing options...
John Hebert Trindade Posted October 26, 2021 at 09:30 AM Author Report Share #624338 Posted October 26, 2021 at 09:30 AM Também já coloquei sem o if(isset, somente assim e não resultou if (!empty($kit) { echo '<h2> Kit '. $kit. ' da escultora ' .$escultora. ', nascido(a) em '. $nascimento. ' e tem '. $peso. ' quilogramas e mede '. $altura.' cm '.$descricao.'.</h2>'; }else { echo '<h2>'.$descricao.'</h2>'; } Link to comment Share on other sites More sharing options...
rsantos18 Posted October 26, 2021 at 09:45 PM Report Share #624343 Posted October 26, 2021 at 09:45 PM (edited) Boa noite, 1 - O mysqli_fetch_assoc apenas retorna uma linha. 2 - A variável $rows é um array. Para escreveres o que queres tens que fazer um foreach e só assim validares se a variável está preenchida ou não. Algo do género: $rows = mysqli_fetch_all($resultado,MYSQLI_ASSOC); foreach($rows as $row){ $peso = $row['peso']; $altura = $row['altura']; $kit = $row['kit']; $escultora = $row['escultora']; $nascimento = $row['nascimento']; $descricao = $row['descricao']; if ($kit!="") { echo '<h2> Kit '. $kit. ' da escultora ' .$escultora. ', nascido(a) em '. $nascimento. ' e tem '. $peso. ' quilogramas e mede '. $altura.' cm '.$descricao.'.</h2>'; }else { echo '<h2>'.$descricao.'</h2>'; } } Verifica se é isso que pretendes. Edited October 26, 2021 at 09:49 PM by rsantos18 Link to comment Share on other sites More sharing options...
John Hebert Trindade Posted October 29, 2021 at 02:49 PM Author Report Share #624370 Posted October 29, 2021 at 02:49 PM O erro era e não era esse, realmente eu preciso que retorno apenas uma linha. O problema era quando havia nomes parecidos (ex. Ivo Miguel e Ivo) então ele devolvia apenas os valores do primeiro registo. bastou alterar a seguinte linha: Como eu havia colocado: $result = "SELECT * FROM `bebes` where `nome` LIKE '%$pasta%'"; Como deve ficar: $result = "SELECT * FROM `bebes` where `nome` LIKE '$pasta'"; Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now