Ir para conteúdo

POWERED BY:

Arquivado

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

juanhenriques

Warning: mysql_fetch_array() expects parameter 1 to be resource [...]

Recommended Posts

Olá pessoal , estou desenvolvendo um site com sistema de noticas, porém sou meio que leiigo e enfrento problemas , a pagina problematica é /controle/admin/noticias.php

Ao acessar ele me mostra a pagina perfeitamente, mas com um erro :

 

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u616019219/public_html/controle/noticias.php on line 24

 

Ao (tentar) interpretar vejo que alguma coisa excedeu alguma coisa , e o problema se dá na linha 24, vou deixar abaixo as linhas 19-27

 

<?
                                            
$query_noticias = "select * from tbl_noticias where status = '1' limit 50";
$rs_noticias    = mysql_query($query_noticias);
                                            
while($campo_noticias = mysql_fetch_array($rs_noticias)){ 
$id_noticia        = $campo_noticias['id_noticia'];
$data_noticia      = $campo_noticias['data'];
$descricao_noticia = $campo_noticias['descricao'];

?>

 

Obs : Linha 24 = while (...)

Alguém pode me ajudar a domar essa fera ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

A query tem algum problema:


$rs_noticias = mysql_query($query_noticias)OR DIR(mysql_error());

Isso vai exibir o erro.


Compartilhar este post


Link para o post
Compartilhar em outros sites

1.

Obs : Linha 24 = while (...)

erro de lógica; vc n abriu 1 loop ("while")? (atenção ao fim da linha):

while($campo_noticias = mysql_fetch_array($rs_noticias)){ 

então feche depois..

 

2. 1 sugestão: em vez dessa volta:

$id_noticia        = $campo_noticias['id_noticia'];
$data_noticia      = $campo_noticias['data'];
$descricao_noticia = $campo_noticias['descricao'];

vc pode exibir direto:

echo $campo_noticias['id_noticia'];
echo $campo_noticias['data'];
echo $campo_noticias['descricao'];

dica 3: recomenda-se o uso da tag completa p/ abrir o código:

<?php

em vez d

<?

sucesso e qqer coisa retorne

Compartilhar este post


Link para o post
Compartilhar em outros sites

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
table.rolar {
border-collapse:collapse;
width:100%;
}
td {border:0px solid #003366;
color:#cccccc;
}
td div {
color:#FF0000;
padding:5px;
background-color:#FFFFFF;
height:260px;
overflow:auto;
}
body {
   margin:0;
}
-->
</style>
</head>
<body>
<table width="100%" bgcolor="White" class="rolar"><tr><td><div>
<fieldset>
<legend>Postagens recentes</legend>
<?php
require_once('../Connections/host1nger.php');
$banco = mysql_select_db($database_host1nger, $host1nger);

$limite = 3; 
$pagina = $_GET['pag'];
/* Se a variável $pagina não conter nenhum valor,
então por padrão ela será posta com o valor 1 (primeira página) */
if(!$pagina)
{
    $pagina = 1;
}
$inicio = ($pagina * $limite) - $limite;
$query = mysql_query("n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT $inicio,$limite");
while($mostrar = mysql_fetch_array ($query) ) 
{
        $texto = "<HR width='100%'>";
        $texto .= substr($texto_antigo, 0, 50);
        $texto .= "...<BR><font size='2' color='#555555'>clique aqui para ver mais >>></font>";
        $texto .= "<HR width='100%'>";
        $id = $mostrar["id"];
        echo "<a style='text-decoration:none;' href='veja_postagem.php?id=" . $id . "' target='frame'><font color='Black'>" . $texto . "</font></a>"; 
}
echo "<font size='2'>Mais antigas:<font size='1'>";
$consulta = mysql_query("SELECT n_id FROM artigos")OR DIR(mysql_error()); // Seleciona o campo id da nossa tabela produtos
$total_registros = mysql_num_rows($consulta);
$total_paginas = Ceil($total_registros / $limite);
for($i=1; $i <= $total_paginas; $i++)
{
    echo ' <a href="postagens_recentes.php?pag='.$i.'&id='.$id.'" style="text-decoration:none;"><font color=#191970> '.$i.'</a> -'.'</font>';
}
	mysql_close();
?>
</fieldset>
</div></td></tr></table>
<table border="1" cellpadding="10"><tr><td bgcolor="White"><font color="Black">Página atual: <?php echo "$pagina";?></font></td><td bgcolor="White"><a href="coment_index.php" target="frame" style="text-decoration:none;"><font color="Black">Ver todas as Postagens</font></a></td></tr></table>
</body>
</html>

 

Tá dando o mesmo erro :(

Linha problemática está destacada

Alguém pode me ajudar ?

Estou adaptando, a fonte do mesmo é de um tópico aqui no fórum

A Estrutura da minha tabela (Artigos) é

 

capturaroy.png

 

Alguém pode me ajudar ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

SEMPRE debugue com OR DIE(mysql_error()), isto vai te mostrar o erro de cara:

 


$query = mysql_query("n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT $inicio,$limite");

 

Está faltando a instrução (SELECT) e não existe nenhuma coluna chamada "id", nem "post" na tabela que você mostrou.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Modifiquei para :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--CSS Oculto-->
</style>
</head>
<body>
<table width="100%" bgcolor="White" class="rolar"><tr><td><div>
<fieldset>
<legend>Postagens recentes</legend>
<?php
require_once('../Connections/host1nger.php');
$banco = mysql_select_db($database_host1nger, $host1nger); 

$limite = 3; 
$pagina = $_GET['pag'];
if(!$pagina)
{
    $pagina = 1;
}
$inicio = ($pagina * $limite) - $limite;
$query = mysql_query("n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT $inicio,$limite")OR DIR(mysql_error()); /*Linha problemática */
while($mostrar = mysql_fetch_array ($query) ) 
{
        $texto = "<HR width='100%'>";
        $texto .= substr($texto_antigo, 0, 50);
        $texto .= "...<BR><font size='2' color='#555555'>clique aqui para ver mais >>></font>";
        $texto .= "<HR width='100%'>";
        $n_id = $mostrar["id"];
        echo "<a style='text-decoration:none;' href='veja_postagem.php?id=" . $n_id . "' target='frame'><font color='Black'>" . $texto . "</font></a>"; 
}
echo "<font size='2'>Mais antigas:<font size='1'>";
$consulta = mysql_query("SELECT n_id FROM artigos")OR DIR(mysql_error());
$total_registros = mysql_num_rows($consulta);
$total_paginas = Ceil($total_registros / $limite);
for($i=1; $i <= $total_paginas; $i++)
{
    echo ' <a href="postagens_recentes.php?pag='.$i.'&id='.$n_id.'" style="text-decoration:none;"><font color=#191970> '.$i.'</a> -'.'</font>';
}
	mysql_close();
?>
</fieldset>
</div></td></tr></table>
<!-- Abaixo vai imprimir ó número da página atual e dar a opção de voltar a ver todas as postagens -->
<table border="1" cellpadding="10"><tr><td bgcolor="White"><font color="Black">Página atual: <?php echo "$pagina";?></font></td><td bgcolor="White"><a href="coment_index.php" target="frame" style="text-decoration:none;"><font color="Black">Ver todas as Postagens</font></a></td></tr></table>
</body>
</html>

 

Retorna o erro : Warning: dir(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 'n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT 0,3' at line 1): failed to open dir: No such file or directory in /home/u616019219/public_html/admin/pr.php on line 43 Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u616019219/public_html/admin/pr.php on line 44
Linha problemática destacada (43)
Desculpem ai,mas esse troço é complicado, quem ajudar fico muito agradecido !

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

$consulta = mysql_query("SELECT n_id FROM artigos")OR DIR(mysql_error());

 

Não seria OR DIE ?

Acho que esse pode ser o erro.

Abraços, Diogo.

Substitui o que me pediu , mas retorna o mesmo erro :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Retorna o erro : Warning: dir(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 'n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT 0,3' at line 1):

Ok, mas o erro acima provavelmente sumiu....

Vou olhar aqui o seu código e em ja ja respondo!

Abraços, Diogo

 

 

$query = mysql_query("n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT $inicio,$limite")OR DIR(mysql_error());

 

Nesta linha depois do mysql_query você não passou nenhum comando, por exemplo: INSERT, SELECT... vc colocou direto os campos da tabela...

Abraços, Diogo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok, mas o erro acima provavelmente sumiu....

Vou olhar aqui o seu código e em ja ja respondo!

Abraços, Diogo

 

 

Nesta linha depois do mysql_query você não passou nenhum comando, por exemplo: INSERT, SELECT... vc colocou direto os campos da tabela...

Abraços, Diogo.

 

Ótimo fiz a correção , mas ainda dá erro, em bora ele tenha diminuido kkk

Fazendo a correção :

$query = mysql_query("SELECT n_data, n_titulo, FROM artigos ORDER BY n_id DESC LIMIT")OR DIR(mysql_error());

 

Retorna um erro :

 

Warning: dir(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 'FROM artigos ORDER BY n_id DESC LIMIT' at line 1): failed to open dir: No such file or directory in /home/u616019219/public_html/admin/pr.php on line 43 Warning (...)

 

Minha tabela de nome "artigos" :

capturaroy.png

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então,

O Erro é porque vc colocou em todos os lugares o OR DIR. Troca todos os OR DIR para OR DIE!

Abraços, Diogo.

Obrigado ,em parte funcionou não dá mais o erro :

 

 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u616019219/public_html/admin/pr.php on line 44 .

Agorá o erro é só :

 

 

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 'FROM artigos ORDER BY n_id DESC LIMIT' at line 1

Você está me ajudando muito abração !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como postar o código corrigido ?



 

$query = mysql_query("n_data, n_titulo, post FROM artigos ORDER BY id DESC LIMIT $inicio,$limite")OR DIR(mysql_error());

Experimenta tirar o (mysql_error())) e coloque só ("Erro de Mysql"));

Compartilhar este post


Link para o post
Compartilhar em outros sites
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<style type="text/css">
<!--
table.rolar {
border-collapse:collapse;
width:100%;
}
td {border:0px solid #003366;
color:#cccccc;
}
td div {
color:#FF0000;
padding:5px;
background-color:#FFFFFF;
height:260px;
overflow:auto;
}
body {
   margin:0;
}
-->
</style>
</head>
<body>
<table width="100%" bgcolor="White" class="rolar"><tr><td><div>
<fieldset>
<legend>Postagens recentes</legend>
<?php
require_once('../Connections/host1nger.php');
$banco = mysql_select_db($database_host1nger, $host1nger); 

$limite = 3; 
$pagina = $_GET['pag'];
if(!$pagina)
{
    $pagina = 1;
}
$inicio = ($pagina * $limite) - $limite;
$query = mysql_query("SELECT n_data, n_titulo, FROM artigos ORDER BY n_id DESC LIMIT")OR DIE(mysql_error());
while($mostrar = mysql_fetch_array ($query) ) 
{
        $texto = "<HR width='100%'>";
        $texto .= substr($texto_antigo, 0, 50);
        $texto .= "...<BR><font size='2' color='#555555'>clique aqui para ver mais >>></font>";
        $texto .= "<HR width='100%'>";
        $n_id = $mostrar["n_id"];
        echo "<a style='text-decoration:none;' href='veja_postagem.php?id=" . $n_id . "' target='frame'><font color='Black'>" . $texto . "</font></a>"; 
}
echo "<font size='2'>Mais antigas:<font size='1'>";
$consulta = mysql_query("SELECT n_id FROM artigos")OR DIE(mysql_error());
$total_registros = mysql_num_rows($consulta);
$total_paginas = Ceil($total_registros / $limite);
for($i=1; $i <= $total_paginas; $i++)
{
    echo ' <a href="postagens_recentes.php?pag='.$i.'&id='.$n_id.'" style="text-decoration:none;"><font color=#191970> '.$i.'</a> -'.'</font>';
}
	mysql_close();
?>
</fieldset>
</div></td></tr></table>

<table border="1" cellpadding="10"><tr><td bgcolor="White"><font color="Black">Página atual: <?php echo "$pagina";?></font></td><td bgcolor="White"><a href="coment_index.php" target="frame" style="text-decoration:none;"><font color="Black">Ver todas as Postagens</font></a></td></tr></table>
</body>
</html>

 

Ta ai ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

$query = mysql_query("SELECT n_data, n_titulo, FROM artigos ORDER BY n_id DESC LIMIT")OR DIE(mysql_error());

Você não definiu qual limite ( DESC LIMIT "coloque aqui o limite").... Coloca algum limite qualquer e ve no que vai dar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

$query = mysql_query("SELECT n_data, n_titulo, FROM artigos ORDER BY n_id DESC LIMIT")OR DIE(mysql_error());

 

 

O erro era a virgula antes do FROM , mas agora o erro diminuiu :

 

 

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

E agora ? :/

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.