Ir para conteúdo

POWERED BY:

Arquivado

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

Tiare Balbi Bonamini

Problema com mysql_fetch_array

Recommended Posts

[RESOLVIDO]

Bom eu estou tendo um problema não sei se e a versão do php que esta sendo usado no Servidor.

 

Ao acessar o link :

http://studioc4serve.com/?pg=noticias&id=1

 

Aparece este erro. Este php desse serve e o 5.2.8 LINK DO PHP INFO CLIQUE AQUI

 

Erro:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/studioc4/public_html/noticias.php on line 8

Mas quando eu coloco em um outro servidor com php 5.2.5 Não tem erro algum!!!

 

alguem poderia me ajudar a ver onde devo mudar para poder funcionar esse PHP ??

Link do servidor sem erro e o php info dele

SITE:

http://studioc4.com.br/v4/?pg=noticias&id=34

PHP INFO:

http://studioc4.com.br/v4/phpinfo.php

 

 

OBS: Uma coisa que eu percebi que está diferente e essa funcção no php

 

allow_url_include On

Essa função esta habilitada no servidor que funciono

 

no que não funciono esta OFF

 

será que e isto ?

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo; Qual sistema operacional dos serviores?

 

E outra; se for Linux é Case Sensitive; Portanto sua consulta no MySQL deve estar errada; (se existir o Banco né rsrs)

 

 

 

 

allow_url_fopen boolean

Esta opção ativa o dispositivo URL fopen wrappers que permite o acesso a objetos URL como arquivos. São disponibilizados por padrão wrappers para acesso de arquivos remotos utilizando os protocolos FTP ou HTTP, e algumas estensões como a zlib podem registar wrappers adicionais. 

Nota: Esta definição pode ser definida apenas no php.ini devido a motivos de segurança. 


Nota: Esta opção foi introduzida imediatamente antes da liberação da versão 4.0.3. Até essa versão e incluindo a 4.0.3, você somente podia desabilitar este recurso na compilação, usando a opção --disable-url-fopen-wrapper . 


Aviso 
Nas versões Windows anterioes a PHP 4.3.0, as funções seguintes não suportavam acesso de arquivos remotos: include(), include_once(), require(), require_once() e as funções imagecreatefromXXX da extensão Funções da GD.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OS 2 Servidores São LINUX com MySql

 

a Forma que estou usando para exibir é:

<?

//selecionando dados da tabela 
$conexao = mysql_connect($servidor,$usuario,$senha);  /*Conecta no bando de dados MySql*/		
mysql_select_db($banco); /*seleciona o banco a ser usado*/
$res = mysql_query("SELECT *,date_format(data, '%d/%m/%Y') AS data FROM tb_noticias WHERE id=$id "); 
while($escrever = mysql_fetch_array($res)){ 
//onde $nome é a variavel que rerpresenta a coluna "nome" nessa 
//mesma tabela. 
echo "<div id='titulo_noticia'><strong>Titulo</strong>:".$escrever['titulo'] . "</div><br class='espaco';><div id='noticia_data';>Data do Cadastro:" .$escrever['data'] . "</div><br><div id='noticia_mensagem';><strong>Mensagem</strong>:<br>" . nl2br($escrever['dados']) . "</div><br><br><br>";
} 
?>

OBS: Os arquivos de conexão tão dentro de 1 arquivo conexao.php e esta sendo colocando com 1 include

Compartilhar este post


Link para o post
Compartilhar em outros sites

$res = mysql_query("SELECT *,date_format(data, '%d/%m/%Y') AS data FROM tb_noticias WHERE id='$id' ") or exit(mysql_error());

Nunca tentei fazer a query com *,...

mas coloque o que o Beraldo falou e faça o teste... e poste o erro retornado;

 

Coloque a variável $id entre apostrofos;

Compartilhar este post


Link para o post
Compartilhar em outros sites

$res = mysql_query("SELECT *,date_format(data, '%d/%m/%Y') AS data FROM tb_noticias WHERE id='$id' ") or exit(mysql_error());

Nunca tentei fazer a query com *,...

mas coloque o que o Beraldo falou e faça o teste... e poste o erro retornado;

 

Coloque a variável $id entre apostrofos;

 

Fiz como você falo mas agora não exibi o conteudo

 

http://studioc4serve.com/?pg=noticias&id=1

Compartilhar este post


Link para o post
Compartilhar em outros sites

o problema era no $id.

faça assim a query

 

$res = mysql_query("SELECT campo1,campo2,campo3,campo4,date_format(data, '%d/%m/%Y') AS data FROM tb_noticias WHERE id='$id' ") or die(mysql_error());

Porque tipo; usar o * e alguma outra função não creio que retorno os dados certos;.

 

troque o * pelo nome de todos os campos que você utiliza na listagem;

Compartilhar este post


Link para o post
Compartilhar em outros sites

NUss ^^ Continua em branco os dados, vou colocar o arquivo conexão e o codigo como fico:

$servidor = "localhost"; 
$usuario = "login mysql";
$senha = "senha"; 
$banco = "studioc4_site"; 
$conexao = mysql_connect($servidor,$usuario,$senha);  /*Conecta no bando de dados MySql*/	 
	 
mysql_select_db($banco);
$res = mysql_query("SELECT id,titulo,data,dados,date_format(data, '%d/%m/%Y') AS data FROM tb_noticias WHERE id='$id' ") or die(mysql_error());
while($escrever = mysql_fetch_array($res)){ 
//onde $nome é a variavel que rerpresenta a coluna "nome" nessa 
//mesma tabela. 
echo "<div id='titulo_noticia'><strong>Titulo</strong>:".$escrever['titulo'] . "</div><br class='espaco';><div id='noticia_data';>Data do Cadastro:" .$escrever['data'] . "</div><br><div id='noticia_mensagem';><strong>Mensagem</strong>:<br>" . nl2br($escrever['dados']) . "</div><br><br><br>";
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo id é um inteiro? retire as aspas.

WHERE id= $id
Faça o seguinte, e poste o resultado aqui:

$sql = "SELECT `id`, `titulo`, `data`, `dados` ,date_format(data, '%d/%m/%Y') AS data FROM `tb_noticias` WHERE `id` = $id ";
echo $sql;
$res = mysql_query($sql) or die(mysql_error());
:lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo id é um inteiro? retire as aspas.

WHERE id= $id
Faça o seguinte, e poste o resultado aqui:

$sql = "SELECT `id`, `titulo`, `data`, `dados` ,date_format(data, '%d/%m/%Y') AS data FROM `tb_noticias` WHERE `id` = $id ";
echo $sql;
$res = mysql_query($sql) or die(mysql_error());
:lol:

Deu essa mensagem:

SELECT `id`, `titulo`, `data`, `dados` ,date_format(data, '%d/%m/%Y') AS data FROM `tb_noticias` WHERE id = 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

http://studioc4serve.com/?pg=noticias&id=1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois então.. viu que a variável $id não existe?

o teu register_globals está off... e isso é bom.

 

Faça:

$id = $_GET['id'];
$sql = "SELECT `id`, `titulo`, `data`, `dados` ,date_format(data, '%d/%m/%Y') AS data FROM `tb_noticias` WHERE `id` = $id ";
echo $sql;
$res = mysql_query($sql) or die(mysql_error());
http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois então.. viu que a variável $id não existe?

o teu register_globals está off... e isso é bom.

 

Faça:

$id = $_GET['id'];
$sql = "SELECT `id`, `titulo`, `data`, `dados` ,date_format(data, '%d/%m/%Y') AS data FROM `tb_noticias` WHERE `id` = $id ";
echo $sql;
$res = mysql_query($sql) or die(mysql_error());
http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

VLwwwwwwwwwwwwwwww cara DEU CERTO AKIIIIII

Compartilhar este post


Link para o post
Compartilhar em outros sites

:P Que bom que resolveu http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Mas toma cuidado com isso.. sempre coloque as crases nos campos, e só coloque aspas em campos que forem strings, não em INTEIROS como o id... sugestão errada do Renato

Coloque a variável $id entre apostrofos;

Compartilhar este post


Link para o post
Compartilhar em outros sites

:P Que bom que resolveu http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Mas toma cuidado com isso.. sempre coloque as crases nos campos, e só coloque aspas em campos que forem strings, não em INTEIROS como o id... sugestão errada do Renato

Coloque a variável $id entre apostrofos;

blzz vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica: para evitar a geração de NOTICES, caso id não exista no array $_GET, use isset:

 

$id = isset( $_GET['id'] ) ? (int)$_GET['id'] : FALSE;

Se $_GET['id'] não existir, $id receberá FALSE. Você pdoe fazer um IF para ver se $id não é FALSE antes de executar a consulta.

 

O casting com (int) evita que se passe qualquer valor pela URL, evitando ataques com SQL Injection

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estou com um problema quase parecido com esse. no meu caso, as imagens aparecem normalmente no firefox, opera, netscape, chrome e etc, porém no IE não: como vocês podem ver http://www.fosoffshore.com.br e um outro detalhe, o código que é usado para parceiros é usado para destaque... isso passou acontecer de uma hora para outra. Alguém tem uma idéia do que seja.

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.