Ajuda com erro. Warning: Invalid argument supplied for foreach()
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:
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
Curtidas 0
Melhor post
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
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.
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
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
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