Infinite listing with mysqli_fetch_array()

Asked

Viewed 257 times

-1

My code returns the database query, but lists only the last item inserted, and lists infinitely. I wish I knew where I was going wrong.

 <?php
//Início da listagem

$servidor = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'portfolio';

$COMANDO_SQL = "SELECT *  FROM cliente";    
$link = mysqli_connect($servidor,$usuario,$senha,$banco);
mysqli_query($link,$COMANDO_SQL);

$resultado_listagem = mysqli_fetch_array( mysqli_query($link,$COMANDO_SQL) 
);
//parte superior do documento
?>  
    <?php // parte do documento onde inicia a listagem
    while( $resultado_listagem = mysqli_fetch_array( 
mysqli_query($link,$COMANDO_SQL) ) );
    {
    $CPF_CNPJ = $resultado_listagem['CPF_CNPJ'];    
    $NOME_COMPLETO_RAZAO_SOCIAL = $ 
    resultado_listagem['NOME_COMPLETO_RAZAO_SOCIAL'];   
    $NOME_FANTASIA = $resultado_listagem['NOME_FANTASIA'];  
    $TELEFONE = $resultado_listagem['TELEFONE'];    
    $RUA = $resultado_listagem['RUA'];  
    $BAIRRO = $resultado_listagem['BAIRRO'];    
    $CIDADE = $resultado_listagem['CIDADE'];    
    $ESTADO = $resultado_listagem['ESTADO'];    

?>

2 answers

2

The query is made at least twice and nothing is done with the result of it.

mysqli_query($link,$COMANDO_SQL); //1 vez

$resultado_listagem = mysqli_fetch_array(mysqli_query($link,$COMANDO_SQL)); //2 vez

The other problem is in while every iteration of it the same query is done again because mysqli_fetch_array() takes the zeroed result of mysqli_query($link,$COMANDO_SQL) so the consultation lines are never exhausted.

while($resultado_listagem = mysqli_fetch_array(mysqli_query($link,$COMANDO_SQL)));

The solution is to query only once and store the result and only then pass it to while. The correct code would be something like:

$COMANDO_SQL = "SELECT *  FROM cliente";   
$result = mysqli_query($link, $COMANDO_SQL) or die(mysqli_error($link));
while($linha = mysqli_fetch_assoc($result)){
  echo $linha['NOME_COMPLETO_RAZAO_SOCIAL'] .'<br>';
}
  • Well, no error returned, the problem is that it did not display anything on the screen

0

$servidor = 'localhost';
$usuario = 'root';
$senha = '';
$banco = 'portfolio';

$COMANDO_SQL = "SELECT * FROM cliente";
$link = mysqli_connect($servidor,$usuario,$senha,$banco);
$resultado_listagem = mysqli_fetch_array(mysqli_query($link,$COMANDO_SQL));
foreach ($resultado_listagem as $resultado) {
    echo 'CPF_CNPJ: '.$resultado['CPF_CNPJ'].'<br>';
    echo 'NOME_COMPLETO_RAZAO_SOCIAL: '.$resultado['NOME_COMPLETO_RAZAO_SOCIAL'].'<br>';
    echo 'NOME_FANTASIA: '.$resultado['NOME_FANTASIA'].'<br>';
    echo 'TELEFONE: '.$resultado['TELEFONE'].'<br>';
    echo 'RUA: '.$resultado['RUA'].'<br>';
    echo 'BAIRRO: '.$resultado['BAIRRO'].'<br>';
    echo 'CIDADE: '.$resultado['CIDADE'].'<br>';
    echo 'ESTADO: '.$resultado['ESTADO'].'<br>';
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.