Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como faço um loop através de uma consulta mysql com php


Aqui está o modelo básico para esse tipo de coisa, usando funções php embutidas (assumindo o mysql de estilo antigo, mas semelhante usando outros back-ends de banco de dados ou bibliotecas de nível superior). Neste exemplo, os erros são tratados lançando exceções, mas essa é apenas uma maneira de fazer isso.
  1. Conectar ao banco de dados
  2. Verifique se a conexão foi bem-sucedida
  3. Execute a consulta
  4. Certifique-se de que a consulta não falhou por algum motivo (geralmente um erro de sintaxe SQL). Se falhou, descubra o motivo e lide com esse erro
  5. Verifique se a consulta retornou pelo menos uma linha (zero linha normalmente é um caso especial)
  6. Percorra as linhas retornadas, fazendo o que for necessário.

As classes de exceção precisariam ser definidas (elas são a única sintaxe não embutida aqui, mas você não deve lançar exceções simples).

Código de exemplo:
<?PHP
//try to connect to your database.
$conn = mysql_connect(...);

//handle errors if connection failed.
if (! $conn){
    throw new Db_Connect_Error(..); 
}   

// (try to) run your query.
$resultset = mysql_query('SELECT ...');

//handle errors if query failed.  mysql_error() will give you some handy hints.
if (! $resultset){ 
    // probably a syntax error in your SQL, 
    // but could be some other error
    throw new Db_Query_Exception("DB Error: " . mysql_error()); 
}

//so now we know we have a valid resultset

//zero-length results are usually a a special case    
if (mysql_num_rows($resultset) == 0){   
    //do something sensible, like tell the user no records match, etc....
}else{
    // our query returned at least one result. loop over results and do stuff.
    while($row = mysql_fetch_assoc($resultset)){
        //do something with the contents of $row
    }
}