PaUlO... 0 Denunciar post Postado Setembro 19, 2011 Está acontecendo um erro ao tentar usar um while para mostrar dados de uma tabela do MySQL na tela... Segue o erro: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /****/****/****/****/logs.php on line 19 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''**********'' at line 1 O Codigo é esse: <? /*Conectando ao banco de dados*/ include('db.php'); $ipb = $_SERVER ['REMOTE_ADDR']; $ip = ereg_replace('[^0-9]', '', $ipb); $pg = $ip; ?> <table> <? if("$ip == $pg"){ $visualizar = mysql_query("SELECT * FROM '{$ip}'"); while($linha = mysql_fetch_array($visualizar)or die( mysql_error() )){ $destino = $linha['destino']; ?> <tr> <td><? echo $destino ?></td><td></td> </tr> <? } } ?> Adicionais: /A tabela já existe. /Esse if está assim só por enquanto, mais pra frente já tenho uma função para ele... /Esses "***" são meu ip, local e etc, que eu estou "censurando" agora para o tópico... Alguém poderia me dar uma luz? Já tentei ver e resolver de varias maneiras mas nada Obrigado desde já... ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
Robz Lancaster 0 Denunciar post Postado Setembro 19, 2011 Bem Mostre Seu DB.php Aqui. Tente por esse novo código: <?php /*Conectando ao banco de dados*/ include('db.php'); $ipb = $_SERVER ['REMOTE_ADDR']; $ip = ereg_replace('[^0-9]', '', $ipb); $pg = $ip; ?> <table> <?php $visualizar = mysql_query("SELECT * FROM `NOMETABELA`"); while($linha = mysql_fetch_assoc($visualizar)){ $destino = $linha['destino']; ?> <tr> <td><?php echo $destino ?></td><td></td> </tr> <?php } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 19, 2011 deixe assim: $visualizar = mysql_query("SELECT * FROM '{$ip}'")or die( mysql_error() ); vai lhe retornar o motivo de ter falhado. interprete o erro e corrija. Compartilhar este post Link para o post Compartilhar em outros sites
PaUlO... 0 Denunciar post Postado Setembro 19, 2011 O db.php já estou usando ele em mais duas paginas, e para o mesmo banco de dados e sem erro nenhum: <? /*Conexão com o banco de dados*/ $banco = mysql_connect("localhost","*******_01","***********"); $dados = mysql_select_db("*******_ip",$banco); ?> Quanto a essa que você postou tambem não deu certo, também continua dizendo que a um erro na linha do "mysql_fetch"... @William Bruno Sim eu já acrescentei ai também e mostra o mesmo erro: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''NOME_DA_TABELA'' at line 1" Tradução by google: "Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde à sua versão do servidor MySQL para a sintaxe direita ao uso próximo''NOME_DA_TABELA''at line 1" Não consigo "enxergar" esse possível erro :unsure: Adicionais: versão do MySQL : 5.0.92-community Versão do PHP : 5.2.17 Versão do Apache : 2.2.20 Hospedagem Profissional Esses "***" são uma censura que eu estou colocando ao meu ip, servidor, senha e etc... Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 19, 2011 qual é o nome da tabela no banco ? Compartilhar este post Link para o post Compartilhar em outros sites
PaUlO... 0 Denunciar post Postado Setembro 19, 2011 A tabela é criada através do IP de quem está cessando através desse código: <? /*Conectando ao banco de dados*/ include('db.php'); /*Colhendo as informações do usuario*/ $ipb = $_SERVER ['REMOTE_ADDR'];/*Pega o IP do usuario*/ $ip = ereg_replace('[^0-9]', '', $ipb);/*Retira os pontos (.) do IP deixando somente números*/ /*Criando tabela com o IP*/ $gravar = mysql_query("CREATE TABLE `{$ip}` ( `id` INT( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT , `nome` VARCHAR( 50 ) NOT NULL , `data` VARCHAR( 50 ) NOT NULL , `hora` VARCHAR( 50 ) NOT NULL , `remetente` VARCHAR( 50 ) NOT NULL , `destino` VARCHAR( 50 ) NOT NULL , `email` TEXT NOT NULL , PRIMARY KEY ( `id` ), UNIQUE (nome) )"); ?> Esta funcionando perfeitamente... Agora com a tabela já criada (com os números do IP de quem acessou) e com registros já feitos com outra pagina que fiz, quero "puxar" o remetente da tabela (localizando a tabela correta a "puxar", através do numero de IP)... Esses "NOME_DA_TABELA" ou "*****" é somente uma censura ao meu IP e ao local, e senha... Compartilhar este post Link para o post Compartilhar em outros sites
pixelrafael 7 Denunciar post Postado Setembro 20, 2011 Porque não criar 1 tabela para todos ips e cada acesso adicionar 1 registro? Aí só por(exemplo): $visualizar = mysql_query("SELECT * FROM ips WHERE ip='{$ip}'")or die( mysql_error() ); Compartilhar este post Link para o post Compartilhar em outros sites
₢istiano 0 Denunciar post Postado Setembro 20, 2011 tem uma redundancia nesse seu codigo ai, repare $pg = $ip; //tu define que a variavel pg é igual a ip if("$ip == $pg"){ // qual a posibilidade de ip ser diferente de pg ? quanto a sua logica de criar varias tabelas iguais com nomes defirentes para criar um registro, tá meio sem nexo... Compartilhar este post Link para o post Compartilhar em outros sites
PaUlO... 0 Denunciar post Postado Setembro 20, 2011 não isso é um mero detalhe por enquanto, isso ai é para uma futura função... // quanto a sua logica de criar varias tabelas iguais com nomes defirentes para criar um registro, tá meio sem nexo... Esse "sistema" vai ser usado por poucas pessoas por isso uma tabela para cada, e quero ter um log de tudo que esse IP fazer mais "organizadamente"... Mas o tópico já está saindo do nexo do problema de não estar visualizando os registros da tabela... <? /*Conectando ao banco de dados*/ include('db.php'); $ipb = $_SERVER ['REMOTE_ADDR']; $ip = ereg_replace('[^0-9]', '', $ipb); $pg = $ip; ?> <table> <? if("$ip == $pg"){ $visualizar = mysql_query("SELECT * FROM '{$ip}'"); while($linha = mysql_fetch_array($visualizar)or die( mysql_error() )){ $destino = $linha['destino']; ?> <tr> <td><? echo $destino ?></td><td></td> </tr> <? } } ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Setembro 20, 2011 erro de sintaxe, para nomes de campos e de tabelas, você não deve usar aspas simples, mas sim crase: atualize para o seguinte: $visualizar = mysql_query("SELECT * FROM `{$ip}`")or die( mysql_error() ); while($linha = mysql_fetch_array($visualizar)){ porém, note que um IP possui caracteres inválidos para a criação de tabelas, e por isso você não deveria fazer dessa forma. Melhor você modelar corretamente esse sistema, tendo uma tabela para o log, outra para os IPs, e então, adicionar todas as atividades de todos os IPs na mesma tabela. Compartilhar este post Link para o post Compartilhar em outros sites
PaUlO... 0 Denunciar post Postado Setembro 20, 2011 Brigadão William Bruno era isso mesmo... Quanto ao "sistema" vou ver aqui um outro meio para guardar os logs... Resolvido e obrigado! :D Compartilhar este post Link para o post Compartilhar em outros sites