Ajuda com erro. Warning: Invalid argument supplied for foreach()

HTML

PHP

Banco de Dados

XML

Front-end

06/09/2017

Notice: Undefined variable: dados in /opt/lampp/htdocs/app/usuario/view_lista.php on line 26

Warning: Invalid argument supplied for foreach() in /opt/lampp/htdocs/app/usuario/view_lista.php on line 26
ID NOME IDADE - (OBS.: = Imprimi somente o Título da tabela)


--------------------------------------------------------------------------
Código da região apontada pelo erro no código fonte:
<table border="1" cellpadding="5" cellspacing="5" width="
550px">
<tr>
<td>ID</td>
<td>NOME</td>
<td>IDADE</td>
<td>-</td>
</tr>

linha 26 que indica o Erro=> <?php foreach ($dados as $linha) { ?>
<tr>
<td> <?=$linha['id']?> </td>
<td> <?=$linha['nome']?> </td>
<td> <?=$linha['idade']?> </td>
<td>
<a href="index.php?r=usuario&p=excluir&codigo=<?=$linha['id'] ?>" onclick="return confirm('Deseja realmente excluir o registro?')">Excluir</a>
</td>
</tr>
<?php } ?>
</table> 
George Lucas

George Lucas

Curtidas 0

Melhor post

Danilo Prazeres

Danilo Prazeres

11/09/2017

Lucas, se você esta utilizando MVC, verifica se o controller esta enviando para a view o $dados, põe ai para vermos o controller, aparentemente o foreach está ok.
GOSTEI 1

Mais Respostas

Leonardo Xavier

Leonardo Xavier

06/09/2017

não testes apenaas o polhando seu codigo:

Troque por:

<?php
$sql ="seu sql de consulta ...";
$resultado = mysqli_querry($conexao,$sql);
while($linha = mysqli_fetch_array($resutado)){
echo '<tr>
<td>'.$linha['id'].'</td>
<td> '.$linha['nome'].' </td>
<td> '.$linha['idade']'. </td>
<td>
<a href="index.php?r=usuario&p=excluir&codigo=$linha['id'] ?>" onclick="return confirm('."'".'Deseja realmente excluir o registro?'."'".')">Excluir</a>
</td>
</tr>';
?>

teste assim e me avise ate mais.
GOSTEI 0
George Lucas

George Lucas

06/09/2017

Leonardo, Obrigado pela tentativa, mas não funcionou, contém erros de sintaxe e '' e ", além do mais feri o padrão utilizado (MVC) Essa consulta e chamada ao banco estão sendo realizadas em arquivos diferentes.
GOSTEI 0
George Lucas

George Lucas

06/09/2017


<?php

$titulo = "Manutenção de Usuários";

#$db_host = "1270.0.0.1"; $db_user = "root"; $db_pass = ""; $db_name = "exemplo01";

$conexao = mysqli_connect($db_host, $db_user, $db_pass, $db_name);

if ( mysqli_connect_errno($conexao) ) {
echo "A conexão falhou, erro reportado ".mysqli_connect_error();
exit();
}


require('mdl_usuario.php');

//qual será a view a ser carregada?

// p = listar, p = cadastrar e p = excluir

if (isset($_GET['p'])) {
# code...
$passo = $_GET['p'];
}else{
$passo = null;
}


switch ($passo) {
case "importar":
importarUsuarios($conexao, "usuario/_usuarios.xml");
break;

case "cadastrar":
cadastrarUsuario( $conexao, $titulo );
break;

case "alterar":
alterarUsuario( $conexao );
break;


case "excluir":

$retornoExc = excluirUsuario( $conexao );

$dados = listarDados($conexao);
require("view_lista.php");
break;


default:
$dados = listarDados($conexao);
require("view_lista.php");
break;
}


@mysqli_close($conexao);

function listarDados($conexao){
$resultado = usuario_listar($conexao);

$data = array();

while ($row = mysqli_fetch_array($resultado)) {
$data[] = array("id" => $row['id'], "nome" => utf8_decode($row['nome']), "idade" => ($row['idade'] == "") ? "--" : $row['idade']);
}
return $data;
}

function excluirUsuario( $conexao ){
$id_usuario = (isset($_GET["codigo"])) ? $_GET["codigo"] : -1;

$resultado = usuario_excluir($conexao, $id_usuario);

if ($resultado) {
return "Exclusão efetuada com sucesso!";
}else{
return "";
}
}

function cadastrarUsuario( $conexao , $titulo){
$titulo = "cadastro de Novo Usuários";

// VERIFICAMOS SE O FORMULÁIRO FOI POSTADO
if ( isset($_POST['frmCadUsuario']) ) {
// postou o formulário de cadastro
$usuario = $_POST['txtNomeUsuario'];
$idade = $_POST['txtIdadeUsuario'];

if(usuario_cadastrar($conexao, $usuario, $idade)){

$retornoExc = "Usuário Cadastrado com Sucesso!";

$dados = listarDados($conexao);
require("view_lista.php");
} else {
echo "O cadastro falhou, tente novamente!";

require("view_form_cadastrar_novo_usuario.php");
}
}else{
// mostrar o formulário de cadastr//o
require("view_form_cadastrar_novo_usuario.php");
}
}

function alterarUsuario( $conexao ){

$titulo = "Alterar Usuário";

if (isset($_POST['id_usuario'])) {
$usuario = $_POST['txtNomeUsuario'];
$idade = $_POST['txtIdadeUsuario'];
$id = $_POST['id_usuario'];

if(usuario_alterar($conexao, $usuario, $idade, $id)){

$retornoExc = "Usuário Alterado com sucesso!";
$dados = listarDados($conexao);
require("view_lista.php");

return false;

} else {
echo "A Alteração falhou, Verifique os dados!";
}

}

if (isset($_POST['id_usuario'])) {
$id = $_POST['id_usuario'];
} else {
$id = $_GET['c
odigo'];
}

$retorno = usuario_porId($conexao, $id);

if (!$retorno) {
echo "Falha em buscar o usuário por ID";
return false;
}

$dadosUsuario = mysqli_fetch_row($retorno);

$dados = array("id" => $dadosUsuario[0], "nome" => $dadosUsuario[1], "idade" => $dadosUsuario[2]);

require("view_form_altera_usuario.php");

}

function importarUsuarios($conexao, $arquivoXml){
$xml = simplexml_load_file($arquivoXml);

foreach ($xml -> usuarios as $usuario) {
echo $usuario -> nome . " - ".$usuario -> idade."<br/>";
}

// gravar de registro por registro no banco de dados
//usuario_cadastrar( $conexao, $nome, $idade);
}

@mysqli_close($conexao);
GOSTEI 0
POSTAR