Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ErickCordeiroA

FOREACH Não traz resultado

Recommended Posts

Boa noite galera, gostaria de uma ajudinha numa situação que estou aqui...

 

 

preciso retornar os valores do banco de dados que esta inserindo corretamente. porem não consigo trazer para tela

 

minha função.

	function listar(){
			$buscaAdm = $this->connMysql->prepare("SELECT ID_ADM, NOME_ADM, EMAIL_ADM FROM TBL_ADMINISTRADORES");
			$buscaAdm->execute();

			$lista = array();
			while($row = $buscaAdm->fetch(PDO::FETCH_ASSOC)){
				$lista[] = array('idAdm'			=>utf8_encode($row["ID_ADM"]),
								 'nomeAdm'			=>utf8_encode($row["NOME_ADM"]),
								 'emailAdm'			=>utf8_encode($row["EMAIL_ADM"]));
			}

			return $lista;
		}

Como estou chamando ela no meu HTML

<?php foreach ($listarAdministradores as $adm): ?>    
					<tr>
						<td><?=$adm['idAdm']?></td>
						<td><?=$adm['nomeAdm']?></td>
						<td><?=$adm['emailAdm']?></td>
						<td>
							<p>
								<a href="Controller/ControllerAdministradores.php?action=editar&id_adm=<?php echo $id_adm;?>">
									<button type="submit" class="btn btn-primary btn-xs"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>
								</a>
								<a href="Controller/ControllerAdministradores.php?action=excluir&id_adm=<?php echo $id_adm;?>">
									<button type="submit" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
								</a>
							</p>
						</td>
					</tr>
					<?php endforeach?>

e utilizo um controller para chamar também

case 'listar':	
			$listarAdministradores = $Administradores->listar();
			header("location: ../cadastro_adm.php?action=listar");
			break;

não sei mais o que fazer para ele aparecer, se alguem puder dar uma força..

 

 

ate mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou um echo ai ..

<td><?=$adm['idAdm']?></td>
<td><?php echo $adm['idAdm']?></td>

é tipo você querer que o codigo abaixo de alguma 'saida':

<?php

$string = 'Agora vaiii';

O trecho acima não gera nenhum erro e ao mesmo tempo não exibe nenhuma saida. já q a string apenas está na variável '$string'

..

 

 

Edit:

 

Tenta evitar essas chamadas '<?' preferindo sempre a completa (<?php)

 

 

Edit2:

Não sabia q

<?=

é equivalente ao <?php echo

 

Então desconsidera oq falei acima...

 

Vamos isolando o problema...

 

1-

 

Já confirmou no banco se realmente a consulta:

SELECT ID_ADM, NOME_ADM, EMAIL_ADM FROM TBL_ADMINISTRADORES

Retorna alguma coisa?

 

Se você dar um var_dump aqui retorna algo?

while($row = $buscaAdm->fetch(PDO::FETCH_ASSOC)){

var_dump($row);
die();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resultado do var_dump($row):

 

array(3) { ["ID_ADM"]=> string(1) "1" ["NOME_ADM"]=> string(14) "Erick Cordeiro" ["EMAIL_ADM"]=> string(24) "erickcordeiroa@gmail.com" }

 

 

também dei um var_dump no meu array criado dentro do while var_dump($lista) e também trouxe o mesmo resultado, eu tirando o die(). Traz todos os meu registros cadastrados

 

e sim ele tem informações no banco...

 

não sei como fazer para ele aparecer mais na minha tela rs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso alterou a tag?

Tem servidor q não funciona com tag resumida (<?) apenas com a completa (<?php)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alterei..

 

<?php foreach ($listarAdministradores as $adm): ?>    
<tr>
<td><?php $adm['idAdm']?></td>
<td><?php $adm['nomeAdm']?></td>
<td><?php $adm['emailAdm']?></td>
<td>
<p>
<a href="Controller/ControllerAdministradores.php?action=editar&id_adm=<?php echo $id_adm;?>">
<button type="submit" class="btn btn-primary btn-xs"><span class="glyphicon glyphicon-edit" aria-hidden="true"></span></button>
</a>
<a href="Controller/ControllerAdministradores.php?action=excluir&id_adm=<?php echo $id_adm;?>">
<button type="submit" class="btn btn-danger btn-xs"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
</a>
</p>
</td>
</tr>
<?php endforeach?>

e mesmo assim nada.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faltou o echo...

<td><?php echo $adm['idAdm']?></td>

Além disso, observe que no var_dump o nome dos campos estão em maiúsculo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ESerra... ja fiz isso, ele da erro 500.

 

lembrando que estou utilizando linux para desenvolvimento, apache e php instalados direto não estou usando nenhum programa para servidor como XAMPP por exemplo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ative a exibição de todos os erros no seu script...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso que eu queria saber, pois no PHP.ini o display_error que procurei na internet ja estão todos como ON e mesmo assim não aparece os erros.

 

 

display_errors
; Default Value: On
; Development Value: On
; Production Value: Off
; display_startup_errors
; Default Value: On
; Development Value: On
; Production Value: Off
; error_reporting
; Default Value: E_ALL
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT

Compartilhar este post


Link para o post
Compartilhar em outros sites

Todas as linhas estão comentadas ( ; ), de qualquer jeito, você pode fazer isto no próprio script, coloque no topo:

ini_set('display_errors', true);
error_reporting(E_ALL);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu Realmente não sabia que estava comentado rs.

 

agora esta aparecendo assim o erro.

 

Warning:Invalid argument supplied for foreach()

Compartilhar este post


Link para o post
Compartilhar em outros sites

foreach espera um array, pelo erro o que você está passando não é, por isto o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim...

 

então eu uso uma Class Administradores onde eu crio o While e jogo num array.

e também tenho uma class chamada ControllerAdministradores onde ele faz a chamada dessa função listar existente na Class Administradores.

 

$listarAdministradores = $Administradores->listar();

 

dei um var_dump($listarAdministradores);

 

e ele me traz o seguinte resultado.

 

array(8) { [0]=> array(3) { ["ID_ADM"]=> string(1) "1" ["NOME_ADM"]=> string(14) "Erick Cordeiro" ["EMAIL_ADM"]=> string(24) "erickcordeiroa@gmail.com" } [1]=> array(3) { ["ID_ADM"]=> string(1) "2" ["NOME_ADM"]=> string(5) "Erick" ["EMAIL_ADM"]=> string(24) "erickcordeiroa@gmail.com" } [2]=> array(3) { ["ID_ADM"]=> string(1) "3" ["NOME_ADM"]=> string(6) "Danilo" ["EMAIL_ADM"]=> string(13) "danilo@danilo" } [3]=> array(3) { ["ID_ADM"]=> string(1) "4" ["NOME_ADM"]=> string(24) "Erick Cordeiro de Arruda" ["EMAIL_ADM"]=> string(20) "tiemitanno@gmail.com" } [4]=> array(3) { ["ID_ADM"]=> string(1) "5" ["NOME_ADM"]=> string(3) "yyy" ["EMAIL_ADM"]=> string(6) "aa@dfa" } [5]=> array(3) { ["ID_ADM"]=> string(1) "6" ["NOME_ADM"]=> string(5) "teste" ["EMAIL_ADM"]=> string(11) "teste@teste" } [6]=> array(3) { ["ID_ADM"]=> string(1) "7" ["NOME_ADM"]=> string(25) "ERICK CORDEIRO DE ARRUDA " ["EMAIL_ADM"]=> string(27) "ERICK__CORDEIRO@HOTMAIL.COM" } [7]=> array(3) { ["ID_ADM"]=> string(1) "8" ["NOME_ADM"]=> string(14) "Erick Cordeiro" ["EMAIL_ADM"]=> string(7) "ww@dada" } }

 

 

trazendo o Array de todos os meus registro na tabela.

 

 

sabendo que o php não entendeu que a minha variavel utilizada no controllerAdministradores seja uma array eu coloquei ele dessa maneira

 

<?php foreach (array($listarAdministradores) as $adm): ?>

 

e mesmo assim ele não me traz nenhum resultado.

 

se tiver outra solução onde eu consiga utilizar, fico agradecido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver...

 

a questão estava sendo que não estava chamando o meu controllerAdministradores na minha View.

 

fiz a chamada da função direto no meu View antes do meu foreach e resolveu.

 

Obrigado pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.