Ir para conteúdo

Arquivado

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

ryuunosuke

mysql_num_rows() expects parameter 1 to be resource

Recommended Posts

Ta dando esse erro e eu nao tenho ideia de como arrumar. Alguem da uma luz pf

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/u572453808/public_html/eventos.php on line 232

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/u572453808/public_html/eventos.php on line 239

Script:

$cmd = "SELECT * FROM test WHERE client <> '1' ORDER BY test DESC, test2 DESC" or die("<script>alert('ERROR404.*Server'); history.back();</script>");
        $eventos = mysql_query($cmd);
        $total = mysql_num_rows($eventos);
        $registros = 50;
        $numPaginas = ceil($total/$registros);
        $inicio = ($registros*$pagina)-$registros;
        $cmd = "select * FROM test WHERE client <> '1' ORDER BY test DESC, test2 Desc limit $inicio,$registros" or die("<script>alert('ERROR404.*Server'); history.back();</script>");
        $eventos = mysql_query($cmd);
        $total = mysql_num_rows($eventos);
		while ($evento = mysql_fetch_array($eventos)) {

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem erro na sua query. Joga ela no Workbench ou no Phpmyadmin e testa.

 

Não sei ao certo se o "or die()" pode ser usado numa variável da query, então pode ser isso, também. Tente colocar estes comandos depois do mysql_query(), talvez funcione.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como disse o Caio Baracat, a função die normalmente usa-se como contraponto à execução de um comando e não quando se está a especificar a consulta em si.

Para além disso, ao colocar o valor entre '' estás a dizer que o ID do client é uma string, o que, tendo em conta que o valor em si (1) é numérico, não faz muito sentido. Pode estar aí o problema, pois o aviso diz que a consulta falhou.

 

Finalmente, a extensão mysql já foi descontinuada, pelo que se aconselha a utlização de MySQLi ou PDO para acesso a bases de dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já testaste a consulta directamente no MySQL (phpMyAdmin, por exemplo)? O mais provável é que a consulta não esteja a ser feita correctamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_error() deve ser usado junto a mysql_query, não à string da SQL

 

O seu problema é que a query falhou e retornou FALSE. Explico melhor sobre isso neste link

 

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

usei um codigo igual com

SELECT * FROM news1 ORDER BY id
$pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
$pagina = preg_replace('/[^[:digit:]_]/', '',$pagina);
if(empty($pagina)){
	echo "<script>alert('ERROR404'); history.back();</script>";exit;}else{
	MYSQL_SELECT_DB("u572453808_site", $site);
        $cmd = "SELECT * FROM news1 ORDER BY id";
        $eventos = mysql_query($cmd);
        $total = mysql_num_rows($eventos);
        $registros = 25;
        $numPaginas = ceil($total/$registros);
        $inicio = ($registros*$pagina)-$registros;
        $cmd = "select * FROM news1 ORDER BY id Desc limit $inicio,$registros";
        $eventos = mysql_query($cmd);
        $total = mysql_num_rows($eventos);
		while ($evento = mysql_fetch_array($eventos)) {

Pq ta dando erro com essa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

a eu pensei que

ini_set ('display_errors', true); error_reporting(E_ALL);  

ia mostrar os erros delas tbm. Ta falando que eu nao selecionei a db. sendo que ja tem

MYSQL_SELECT_DB("u572453808_serve", $serve);

como eu faço pra colocar a $serve la dentro da formula? se eu colocar assim buga tudo.

mysql_query("SELECT * FROM test WHERE client <> '1' ORDER BY test DESC, test2 DESC", $serve) or exit(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que o Beraldo tá dizendo para você fazer é isso:

$pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
$pagina = preg_replace('/[^[:digit:]_]/', '',$pagina);
if(empty($pagina)) {
    echo "<script>alert('ERROR404'); history.back();</script>";
    exit;
} else {
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui...
    mysql_select_db("u572453808_site", $site) or die('Erro ao selecionar o banco de dados: '.mysql_error());
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui também...
    $cmd = "SELECT * FROM news1 ORDER BY id";
    $eventos = mysql_query($cmd) or die('Erro na consulta: '.mysql_error());

    $total = mysql_num_rows($eventos);
    $registros = 25;
    $numPaginas = ceil($total/$registros);
    $inicio = ($registros*$pagina)-$registros;
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui também...
    $cmd = "select * FROM news1 ORDER BY id Desc limit $inicio,$registros";
    $eventos = mysql_query($cmd) or die('Erro na consulta: '.mysql_error());
 
    $total = mysql_num_rows($eventos);

    while ($evento = mysql_fetch_array($eventos)) {
 
        [...]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usei o codigo:

$pagina = (isset($_GET['pagina']))? $_GET['pagina'] : 1;
$pagina = preg_replace('/[^[:digit:]_]/', '',$pagina);
if(empty($pagina)) {
    echo "<script>alert('ERROR404'); history.back();</script>";
    exit;
} else {
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui...
    mysql_select_db("u572453808_site", $site) or die('Erro ao selecionar o banco de dados: '.mysql_error());
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui também...
    $cmd = "SELECT * FROM news1 ORDER BY id";
    $eventos = mysql_query($cmd) or die('Erro na consulta: '.mysql_error());

    $total = mysql_num_rows($eventos);
    $registros = 25;
    $numPaginas = ceil($total/$registros);
    $inicio = ($registros*$pagina)-$registros;
 
    // Utilize o mysql_error() para verificar se houve algum erro aqui também...
    $cmd = "select * FROM news1 ORDER BY id Desc limit $inicio,$registros";
    $eventos = mysql_query($cmd) or die('Erro na consulta: '.mysql_error());
 
    $total = mysql_num_rows($eventos);

    while ($evento = mysql_fetch_array($eventos)) {
 
        [...]

Seguinte erro foi dado:

Erro na consulta: No database selected

No site aparentimente somente a querys feitas assim estao funfando:

mysql_query(" ", $serve) or exit(mysql_error());

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você cria $site e qual é o valor dela?

O que pode estar acontecendo é que $site é um link de conexão, mas mysql_query está usando outro link que não teve seleção de banco de dados

 

 

 

PS: funções mysql_* estão obsoletas desde o PHP 5.5 e já foram removidas no PHP 7. Prefira usar MySQLi ou PDO. Veja mais aqui: http://rberaldo.com.br/mysql-obsoleto-php/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe mas eu estava usando a $serve no caso esqueci de alterar no post.

require_once ('engine/script/config.php'); 

Isso no config:

<?php
	$serve = mysql_connect("mysql.hostinger.com.br", "u572453808_serve", "") or die ("<script>alert('*Server'); history.back();</script>");
	$logs = mysql_connect("mysql.hostinger.com.br", "u572453808_logs", "") or die ("<script>alert('*Logs'); history.back();</script>");
	$shopa = mysql_connect("mysql.hostinger.com.br", "u572453808_shopa", "") or die ("<script>alert('*Shop-A'); history.back();</script>");
	$site = mysql_connect("mysql.hostinger.com.br", "u572453808_site", "") or die ("<script>alert('*Site'); history.back();</script>");
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas no caso nao da pra colocar isso na linha que precisa de conexão.

, $serve

E se eu fechar a ultima conexão aberta e colocar a conexão da que eu quero? Isso funciona nos scripts de varias conexões?

mysql_select_db("u572453808_serve", $serve) or die('Erro ao selecionar o banco de dados: '.mysql_error());

Eu achava que por eu estar atribuindo o mysqlconect em uma string, ela ia conecta so quando eu chama-se essa string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mysql_connect abre uma conexão. Se você abrir 4, haverá 4 conexões abertas. E você precisará dizer qual deseja usar

 

A conexão só é fechada ao chamar mysql_close ou quando o script encerrar. Enquanto isso, todas as conexões estarão abertas

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.