rioleal 0 Denunciar post Postado Maio 23, 2015 Pessoal, subi o site que estou finalizando para o Hostinger (servidor gratuito php) para fins de testes antes dar continuidade para a parte de gerenciamento. Acontece que o site está reclamando que um argumento inválido está sendo passado no foreach, mas na minha máquina funciona tranquilo. O código que estou fazendo é o seguinte: ... $dados = new pesquisar; $resultados = $dados->buscarProdutos; //Este é o retorno da consulta com o resultado de tudo o que eu quero: código, preço, descrição. foreach ($resultados as $obj){ echo $obj->codigo.'<br/>'; echo $obj->preco; etc... } Obs. Este código está em um arquivo php separado e em uma classe. O erro é o seguinte: Warning: Invalid argument supplied for foreach() in /home/usuario/public_html/func/func.php on line 135 Acontece em todas as páginas que contém foreach e todos os meus foreach são neste padrão. A pergunta é será que é o servidor Hostinger que não suporta este tipo de foreach? Quem quiser consultar, a página de teste do site é: http://lanchesbomtever.esy.es/produtos.php Repito: No meu PC o site carrega os produtos, preços e faz a paginação corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
ESerra 744 Denunciar post Postado Maio 23, 2015 A questão é simples, $resultados não é um array, ou seja, o problema está no momento que você gera o array... ai realmente, pode ser que a versão do PHP cause isto, comece exibindo todos os erros no seu script. Compartilhar este post Link para o post Compartilhar em outros sites
Olivério Neto 3 Denunciar post Postado Maio 23, 2015 Não seria $dados = new pesquisar(); ? Compartilhar este post Link para o post Compartilhar em outros sites
rioleal 0 Denunciar post Postado Maio 24, 2015 Vou postar meu código aqui em baixo. $resultado é um array sim. Localmente (localhost) funciona perfeitamente. Eu enviei pro servidor Hostinger, justamente, para fazer testes em ambiente on-line porque estava tudo Ok em ambiente local. public function criaTabelas($numMaxLinhas, $valor) { $comando = new comando; //Instancia um objeto //Abaixo verifica de qual página a tabela está sendo requisitada e pega o resultado $resultado = ($valor == 0 ? $comando->executar('SELECT * FROM...') : $comando->executar('SELECT * FROM...')); $totalLinhas = 0; $linhas = 1; foreach ($resultado as $obj): $totalLinhas += 1; //Etc... endforeach; } Não coloquei o foreach todo porque percebi que ele nem entra no loop, então o problema deve ser no $resultado mesmo, mas por quê? Compartilhar este post Link para o post Compartilhar em outros sites
rioleal 0 Denunciar post Postado Maio 24, 2015 Resolvido.O problema foi que eu escrevi a query MySql com o nome das tabelas errado. Exemplo: SELECT * FROM tblpizzas; //Com minúsculas quando o certo é SELECT * FROM tblPizzas; //Com P maiúsculo Compartilhar este post Link para o post Compartilhar em outros sites