Ir para conteúdo
Fórum Script Brasil
  • 0

Erro com mysql_num_rows :s


Lúdio

Pergunta

Bem, estou com um problema nesse código:

<?php

include("conecta_db.php");

$q_total = "SELECT * FROM div_festa WHERE div = '4' or div = '1'";

$mysql_total = mysql_query($q_total);

$total = mysql_num_rows($mysql_total);

$q_ultimo = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id desc limit 1";

$mysql_ultimo = mysql_query($q_ultimo);

$ultimo = mysql_num_rows($mysql_ultimo);

$q_primeiro = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id asc limit 1";

$mysql_primeiro = mysql_query($q_primeiro);

$primeiro = mysql_num_rows($mysql_primeiro);

$intervalo = $primeiro + $total;

$limite = $intervalo - 4;

$match = rand(1,$limite);

$dados_festa = "SELECT * FROM div_festa WHERE div = '4' or div = '1' limit $match,3";

$query_festa = mysql_query($dados_festa);

while($arr = mysql_fetch_array($query_festa))

{

$festa_id = $arr["id"];

$festa_dia = $arr["dia"];

$festa_mes = $arr["mes"];

$festa_nome = $arr["nome"];

$festa_intro = $arr["intro"];

?>

Está me retornando o seguinte erro:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/ludioao/public_html/murtinhofest/inc_index.php on line 94

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/ludioao/public_html/murtinhofest/inc_index.php on line 98

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/ludioao/public_html/murtinhofest/inc_index.php on line 102

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/ludioao/public_html/murtinhofest/inc_index.php on line 114

Peço ajuda de vocês. pois sou novato na área de php xD

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

As querys devem estar com algum porblema...

Troca:

$q_total = "SELECT * FROM div_festa WHERE div = '4' or div = '1'";
$mysql_total = mysql_query($q_total);
$total = mysql_num_rows($mysql_total);

$q_ultimo = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id desc limit 1";
$mysql_ultimo = mysql_query($q_ultimo);
$ultimo = mysql_num_rows($mysql_ultimo);

$q_primeiro = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id asc limit 1";
$mysql_primeiro = mysql_query($q_primeiro);
$primeiro = mysql_num_rows($mysql_primeiro);
Por:
$q_total = "SELECT * FROM div_festa WHERE div = '4' or div = '1'";
$mysql_total = mysql_query($q_total)OR DIE(mysql_error());
$total = mysql_num_rows($mysql_total);

$q_ultimo = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id desc limit 1";
$mysql_ultimo = mysql_query($q_ultimo)OR DIE(mysql_error());
$ultimo = mysql_num_rows($mysql_ultimo);

$q_primeiro = "SELECT * FROM div_festa WHERE div = '4' or div = '1' order by id asc limit 1";
$mysql_primeiro = mysql_query($q_primeiro)OR DIE(mysql_error());
$primeiro = mysql_num_rows($mysql_primeiro);

Isso vai fazer com que o MySQL retorne o erro...

Link para o comentário
Compartilhar em outros sites

  • 0
Acabei de consultar o manual "div" é uma palavra reservada...

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Vai ter que trocar o nome da coluna.

Por favor !! Sou leigo no assunto e não entendi essa de trocar o nome da culuna, pode ria me ajudar ??

Meu script é o mesmo e deu os mesmo erros acima !!.

Essa coluna é no php myadmin ??

QUal coulua é essa ???

E q nome devo colocar para funcionar !!

Meu site esta hospedado em:

www.hospedagemmestre.com.br/sites_modelo/balada

Até mais !!

Obrigado !!!

Link para o comentário
Compartilhar em outros sites

  • 0

'div' é o nome de uma das colunas da tabela 'div_festa'.

O que ocorre é que o MySQL tem algumas palavras que não podem ser usadas em bancos de dados, tabelas ou colunas, pelo fato de já terem alguma função.

Apenas altere o nome da coluna 'div' para outro qualquer, e consequentemente, altere o seu uso no código que está fazendo.

Link para o comentário
Compartilhar em outros sites

  • 0
'div' é o nome de uma das colunas da tabela 'div_festa'.

O que ocorre é que o MySQL tem algumas palavras que não podem ser usadas em bancos de dados, tabelas ou colunas, pelo fato de já terem alguma função.

Apenas altere o nome da coluna 'div' para outro qualquer, e consequentemente, altere o seu uso no código que está fazendo.

mJi !!! Muito obrigado cara !!! Deu certinho, ficou perfeito !! Salve a quem entende da coisa !!! rsrsrsr !!

Valeu mesmo !! já estava algum tempo mexendo e não descobria o problema !!!! também leigo é fodis, né !!! rsrsrs !!!

Mas muito obrigado mesmo !!!

Fiquei muito feliz de ter funcionado !!!

Valeu !!!

Até mais !!!

Olha lá funcionando !!!

www.Hospedagemmestre.com.br/sites_modelo/balada

Valeu mJi !!!

Att,

Rubens !!!

Link para o comentário
Compartilhar em outros sites

  • 0
'div' é o nome de uma das colunas da tabela 'div_festa'.

O que ocorre é que o MySQL tem algumas palavras que não podem ser usadas em bancos de dados, tabelas ou colunas, pelo fato de já terem alguma função.

Apenas altere o nome da coluna 'div' para outro qualquer, e consequentemente, altere o seu uso no código que está fazendo.

Eita nóis !!!! rsrsrs !!!

Bom Tinha funcionado, mas depois que atualizei de novo a pg voltou o problema !!! não entendi !!!

Aí mexi de novo e continuou o problema !!!

Tem ideia do q pode ser ???

Troquei o div_festa por b_festa e troquei tudo no script para esse nome, mas acabou dando o mesmo problema de novo.

Script:

$q_total = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1'";

$mysql_total = mysql_query($q_total);

$total = mysql_num_rows($mysql_total);

$q_ultimo = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' order by id desc limit 1";

$mysql_ultimo = mysql_query($q_ultimo);

$ultimo = mysql_num_rows($mysql_ultimo);

$q_primeiro = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' order by id asc limit 1";

$mysql_primeiro = mysql_query($q_primeiro);

$primeiro = mysql_num_rows($mysql_primeiro);

$intervalo = $primeiro + $total;

$limite = $intervalo - 4;

$match = rand(1,$limite);

$dados_festa = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match,3";

$query_festa = mysql_query($dadosb_festa);

while($arr = mysql_fetch_array($queryb_festa))

{

$festa_id = $arr["id"];

$festa_dia = $arr["dia"];

$festa_mes = $arr["mes"];

$festa_nome = $arr["nome"];

$festa_intro = $arr["intro"];

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Não era 'div_festa' que estava dando problema, até porque 'div_festa' não é uma palavra reservada. Era na coluna 'div' da tabela 'div_festa'. Mas aparentemente você corrigiu isto mudando o nome da coluna para 'dv'. Isto já resolve aquele problema.

O erro que está dando agora é no mysql_fetch_array():

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hospeda4/public_html/sites_modelo/balada/inc_index.php on line 114
Na linha 114, a função mysql_fetch_array deve receber como parâmetro um recurso SQL proveniente de uma consulta feita com mysql_query(). Note neste trecho:
$dados_festa = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match,3";
$query_festa = mysql_query($dadosb_festa);
while($arr = mysql_fetch_array($queryb_festa))

Você coloca a string da consulta em $dados_festa, mas ao invés de colocar esta variável na consulta, você coloca $dadosb_festa.

Além disto, o resultado da query seria armazenado em $query_festa, e você está passando $queryb_festa para o mysql_fetch_array().

Só arrumar estas variáveis que vai dar certo, acredito eu.

Link para o comentário
Compartilhar em outros sites

  • 0
Não era 'div_festa' que estava dando problema, até porque 'div_festa' não é uma palavra reservada. Era na coluna 'div' da tabela 'div_festa'. Mas aparentemente você corrigiu isto mudando o nome da coluna para 'dv'. Isto já resolve aquele problema.

O erro que está dando agora é no mysql_fetch_array():

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/hospeda4/public_html/sites_modelo/balada/inc_index.php on line 114
Na linha 114, a função mysql_fetch_array deve receber como parâmetro um recurso SQL proveniente de uma consulta feita com mysql_query(). Note neste trecho:
$dados_festa = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match,3";
$query_festa = mysql_query($dadosb_festa);
while($arr = mysql_fetch_array($queryb_festa))
Você coloca a string da consulta em $dados_festa, mas ao invés de colocar esta variável na consulta, você coloca $dadosb_festa. Além disto, o resultado da query seria armazenado em $query_festa, e você está passando $queryb_festa para o mysql_fetch_array(). Só arrumar estas variáveis que vai dar certo, acredito eu.
então já estava assim, eu que mudei p ver se ia dar diferença. Mas o erro continua. E quando clica em Balada la no site da o mesmo erro !! já tirei a Aspa simples dos numeros, deixei while($arr = mysql_fetch_array($query_festa))

Nada funcionou. ele da certo mas não aparece nada ai atualizo a pg ele volta o erro.

Bicho estou perdidinho !! rsrsrs !!

Link para o comentário
Compartilhar em outros sites

  • 0

Você não entendeu, eu acho

A string da consulta deve ser enviada como parâmetro para mysql_query(). Esta função retornará um recurso SQL, que deverá ser passado para mysql_fetch_array().

Algo assim:

$queryString = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match, 3";
$queryResult = mysql_query($queryString);
while($arr = mysql_fetch_array($queryResult)){
     $festa_id = $arr['id'];
     $festa_dia = $arr['dia'];
     $festa_mes = $arr['mes'];
     $festa_nome = $arr['nome'];
     $festa_intro = $arr['intro'];
}

Assim, no 'fetch', suas variáveis de $festa... terão os dados do banco.

Ah, e prefira aspas simples ao usar arrays indexados por nome.

Sobre não aparecer nada, tenha certeza de que você colocou algo para exibir os resultados, como um echo() ou algo do tipo. Não adianta só colocar o valor nas variáveis.

Editado por mJi
Link para o comentário
Compartilhar em outros sites

  • 0
Você não entendeu, eu acho

A string da consulta deve ser enviada como parâmetro para mysql_query(). Esta função retornará um recurso SQL, que deverá ser passado para mysql_fetch_array().

Algo assim:

$queryString = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match, 3";
$queryResult = mysql_query($queryString);
while($arr = mysql_fetch_array($queryResult)){
     $festa_id = $arr['id'];
     $festa_dia = $arr['dia'];
     $festa_mes = $arr['mes'];
     $festa_nome = $arr['nome'];
     $festa_intro = $arr['intro'];
}

Assim, no 'fetch', suas variáveis de $festa... terão os dados do banco.

Ah, e prefira aspas simples ao usar arrays indexados por nome.

Sobre não aparecer nada, tenha certeza de que você colocou algo para exibir os resultados, como um echo() ou algo do tipo. Não adianta só colocar o valor nas variáveis.

Ae !! Coloquei esse cod que você mandou e funcionou, olha lá !!! beleza !! Agora aparece o item. Só q clica no link p você ver. Vai para balada, e da o mesmo erro.

Tentei colocar o mesmo cod q você mandou, mas começou a dar outros erros, ai voltei como estava.

Olha o cod ai :

$dados_festa = "SELECT * FROM b_festa WHERE div = '4' or div = '1' order by id desc";

$query_festa = mysql_query($dados_festa);

while($arr = mysql_fetch_array($query_festa))

{

$festa_id = $arr["id"];

$festa_nome = $arr["nome"];

$festa_dia = $arr["dia"];

$festa_mes = $arr["mes"];

$festa_ano = $arr["ano"];

$festa_descricao = $arr["descricao"];

$festa_local = $arr["local"];

$festa_cidade = $arr["cidade"];

$festa_estado = $arr["estado"];

$festa_valor_masc = $arr["valor_masc"];

$festa_valor_fem = $arr["valor_fem"];

$festa_vip_masc = $arr["vip_masc"];

$festa_vip_fem = $arr["vip_fem"];

$festa_venda = $arr["venda"];

$festa_info = $arr["info"];

$festa_div = $arr["div"];

$dia_atual = date("d");

$mes_atual = date("m");

$hora_atual = date("G");

if($dia_atual == $festa_dia && $mes_atual == $festa_mes)

{

if($hora_atual == "22")

{

$deletando = "DELETE FROM b_festa WHERE id = '$festa_id'";

@ $sql_delete = mysql_query($deletando)

or die ("Houve erro na exclusão dos dados, por favor, contacte o administrador do sistema!");

}

}

Link para o comentário
Compartilhar em outros sites

  • 0
Você não entendeu, eu acho

A string da consulta deve ser enviada como parâmetro para mysql_query(). Esta função retornará um recurso SQL, que deverá ser passado para mysql_fetch_array().

Algo assim:

$queryString = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match, 3";
$queryResult = mysql_query($queryString);
while($arr = mysql_fetch_array($queryResult)){
     $festa_id = $arr['id'];
     $festa_dia = $arr['dia'];
     $festa_mes = $arr['mes'];
     $festa_nome = $arr['nome'];
     $festa_intro = $arr['intro'];
}

Assim, no 'fetch', suas variáveis de $festa... terão os dados do banco.

Ah, e prefira aspas simples ao usar arrays indexados por nome.

Sobre não aparecer nada, tenha certeza de que você colocou algo para exibir os resultados, como um echo() ou algo do tipo. Não adianta só colocar o valor nas variáveis.

então ele esta dando erro na linha 119 e 121 quando coloco os dois !!!

115 - $queryString = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match, 3";

116 - $queryResult = mysql_query($queryString);

117 - while($arr = mysql_fetch_array($queryResult))

118 -

119 - $dados_festa = "SELECT * FROM b_festa WHERE div = '4' or div = '1' order by id desc";

120 - $query_festa = mysql_query($dados_festa);

121 - while($arr = mysql_fetch_array($query_festa))

quando coloco só o que você passou ou só o que já tinha da erro na linha 117

115 - $queryString = "SELECT * FROM b_festa WHERE dv = '4' or dv = '1' limit $match, 3";

116 - $queryResult = mysql_query($queryString);

117 - while($arr = mysql_fetch_array($queryResult))

não entendo o que é isso !!!

Desculpe estar te pertubando, e obrigado pela ajuda !!!

E o pior q agora q vi q não primeira pagina ainda tem outro erro de Banco de dados, foi ver o que pode ser. Vixi quanto erro !!!

Link para o comentário
Compartilhar em outros sites

  • 0
Tem algum problema nas cosultas, use OR DIE(mysql_error()) para retornar eles, exemplo:

$queryResult = mysql_query($queryString)OR DIE(mysql_error());

Retornou esse 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 'div = '4' or div = '1'' at line 1

Você tem um erro em sua sintaxe SQL; verifique o manual que corresponde a sua versão do servidor MySQL para a sintaxe correta de usar 'div = '4' perto ou div = '1'' na linha 1

Veja como esta !!

www.HospedagemMestre.com.br/sites_modelo/balada

Até mais !!

Obrigado !!!

Link para o comentário
Compartilhar em outros sites

  • 0

Ola pessoal, alguém ai para me dar uma força nesse código que não fecha as conecções persistentes ao banco de dados.

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/leilaoap/public_html/update_information.php on line 13
[]

é na linha 13 do código: $total = mysql_num_rows($ressel);

e conforme da erro na linha 14: $counter = 0;

código do script:

----------------------------------------------------------------------------------------------------------------------

<?php

include("config/connect.php");

include("functions.php");

include_once("tempo_sql.php");

$uid = $_SESSION["userid"];

$aucidsnew = $_POST['leiloes'];

$qrysel = "select * from auc_due_table where auction_id in (".$aucidsnew.") order by auc_due_time";

$ressel = mysql_query($qrysel);

$total = mysql_num_rows($ressel);

$counter = 0;

$p = 0;

for($i=1;$i<=$total;$i++){

$obj = mysql_fetch_object($ressel);

$newtime = $obj->auc_due_time;

$newprice = str_replace(".",",",$obj->auc_due_price);

$oldprice = $prices[$p];

$qr = "select * from bid_account ba left join registration r on ba.user_id=r.id where auction_id='".$obj->auction_id."' and bid_flag='d' order by ba.id desc limit 0,1";

$res2 = mysql_query($qr);

$total2 = mysql_num_rows($res2);

$obj2 = mysql_fetch_object($res2);

$username = $obj2->username;

if($i==1){ $temp = ''; } else { $temp .= ','; }

if($username=='')$username='Sem Lance';

$temp .= '{"leilao":{"id_leilao":"'.$obj->auction_id.'","tempo_leilao":"'.$newtime.'","preço":"'.$newprice.'","id_pessoa":"'.$obj2->user_id.'","usuario":"'.$username.'"}}';

$p++;

}

echo "[".$temp."]";

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Nxhost, já experimentaste fazer debug para perceber o que está a ser armazenado na variável 'ressel'?

A mensagem indica que a função mysql_num_rows espera um result set e não um valor boleano, que é o que está a ser passado (provavelmente o valor false). Tenta executar a consulta directamente no phpMyAdmin ou algo similar para ver se é devolvido algum registo.

Editado por wootzor
Link para o comentário
Compartilhar em outros sites

  • 0

adicionei p mostrar a consulta ao banco de dados e deu essa mensagem:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/leilaoap/public_html/update_information.php on line 14

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 ') order by auc_due_time' at line 1

Link para o comentário
Compartilhar em outros sites

  • 0

ola´amigo, No codigo é:

$aucidsnew = $_POST['leiloes'];

--------------------------------todo codigo do arquivo:

<?php
include("config/connect.php");
include("functions.php");
include_once("tempo_sql.php");
$uid = $_SESSION["userid"];
$aucidsnew = $_POST['leiloes'];
$qrysel = "select * from auc_due_table where auction_id in (".$aucidsnew.") order by auc_due_time";
$ressel = mysql_query($qrysel);
$total = mysql_num_rows($ressel) ;
$counter = 0;
$p = 0;
for($i=1;$i<=$total;$i++){
$obj = mysql_fetch_object($ressel);
$newtime = $obj->auc_due_time;
$newprice = str_replace(".",",",$obj->auc_due_price);
$oldprice = $prices[$p];
$qr = "select * from bid_account ba left join registration r on ba.user_id=r.id where auction_id='".$obj->auction_id."' and bid_flag='d' order by ba.id desc limit 0,1";
$res2 = mysql_query($qr);
$total2 = mysql_num_rows($res2);
$obj2 = mysql_fetch_object($res2);
$username = $obj2->username;
if($i==1){ $temp = ''; } else { $temp .= ','; }
if($username=='')$username='Sem Lance';
$temp .= '{"leilao":{"id_leilao":"'.$obj->auction_id.'","tempo_leilao":"'.$newtime.'","preço":"'.$newprice.'","id_pessoa":"'.$obj2->user_id.'","usuario":"'.$username.'"}}';
$p++;
}
echo "[".$temp."]";
?>
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...