Ir para conteúdo

POWERED BY:

Arquivado

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

666999

[Resolvido] verificar se determinada tabela mysql esta vazia

Recommended Posts

pessoal estou com uma duvida

 

tipo qual é o comando para verificar se existe dados em uma determinada tabela mysql ?

 

eu consegui verificar se existe tabela ou nao assim

$tem = ('$ln->tabelaoi');
  if($tem ){
    echo "tabela existe";
  }
  else{
    echo "falso";
  }

agora gostaria de fazer o mesmo esquema com if e else

para verificar se existe dados na tabela :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá 666999, bom dia!!!

 

Bom...talvez essa função resolva seu problema.

 

mysql_num_rows

 

Por exemplo.

 


   $sql = "Blá....blá...blá....blá...";
   $consultar = mysql_query($sql);
   
   /*ou se prefere esse outro tipo de enviar a consulta, porém ambas dão no mesmo....é só a forma de utilizar que é meio diferente...eu utilizo a segunda opção*/

   $consultar = $db->consultar($sql);

   if(mysql_num_rows($consultar) > 0){
        echo "Existe dados na tabela";
   }
   else{
       echo "Tabela vazia";
   }

   

Ou seja...a função mysql_num_rows, verifica o retorno de uma consulta juntamente com a quantidade de registros encontrados(acho que é isso..se não for...é algo do genero...rsss), daí..como você só quer saber se...a tabela está vazia ou não...apenas verifica se a consulta retorno algum registro...se sim...a tabela está com dados...se não...a mesma se encontra vazia.

 

Bom...espero ter lhe ajudado ok.

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

Abraços e boa sorte por aí, sucessos!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentei assim

$consultar =mysql_query("SELECT *  FROM produtos WHERE tabela1='$tabela1' ");
 if(mysql_num_rows($consultar) > 0){
    echo "tem dados na tabela";
  }
  else{
    echo "vazio";
  }

apareceu isso :(

 

Notice: Undefined variable tabela1

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe

e falando nisso

 

nesta mesma pagina tem uma consulta semelhante com SELECT

e tipo eu consigo mostrar dados da tabela1 com a variavel que eu montei com outra select que serve para outra coisa

 

echo "". $ln->tabela1."";

tem como eu fazer alguma gambi

com esta variavel

". $ln->tabela1."
e com
if(mysql_num_rows($consultar) > 0){
? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejamos...e que valor contém na variavel $tabela1?

Tem como você postar a estrutura da tabela e o valor da variavel $tabela1?

 

No aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ela é varchar(200) latin1_swedish_ci

 

e tipo tive uma ideia e alterei agorinha assim

 

$consultar =mysql_query("SELECT * FROM produtos WHERE tabela1='$ln->tabela1' ");

 

o resultado do if foi "verdade"

 

eu percebi que a estrutura esta indicando a existencia da tabela verdade ou falso

e nao o conteudo dentro

 

esse é a estrutura de outro select na mesma pagina que serve pra outra coisa

 

  $sql = "SELECT * FROM  produtos WHERE id='$id'";
  $q = mysql_query( $sql );
  while ($ln =mysql_fetch_object( $q)){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tá...mais eu gostaria que você postasse a tabela toda....tipo

CREATE TABLE `produtos` (
  `id_produto` int(11) NOT NULL AUTO_INCREMENT,
  `prod_descricao` varchar(100) DEFAULT NULL,
  `pro_preco` int(11) DEFAULT NULL,
  PRIMARY KEY (`id_produto`),
  ) ENGINE=InnoDB

E o valor que você está passando atravez da variavel $tabela1.

 

No aguardo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

CREATE TABLE IF NOT EXISTS `produtos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Login` varchar(50) NOT NULL,
  `Senha` char(15) NOT NULL,
  `Nome` varchar(200) NOT NULL,
  `Email` varchar(200) NOT NULL,
  `Pergunta` varchar(200) NOT NULL,
  `estabelecimentonome` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `descricao` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `telefone` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `telefone2` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `mostraremail` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `site` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `cod_estados` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `cod_cidades` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `bairro` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `rua` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `numero` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `foto` varchar(255) NOT NULL,
  `categoria` int(11) NOT NULL,
  `tabela1` varchar(200) NOT NULL,
  `chave` varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=172 ;

 

esqueci é 3 select na mesma pagina cada um faz algo

coitado do meu bd mysql ^^ :P

 

1 select

$query = mysql_query("SELECT * FROM categoria") or die(mysql_error());

while($array = mysql_fetch_array($query))

 

 

2select

$sql = "SELECT * FROM produtos WHERE id='$id'";

$q = mysql_query( $sql );

while ($ln =mysql_fetch_object( $q)){

 

3select

esse quero que verifica se existe dados na tabela mysql ou nao

 

voce conhece algum blog ou video aula que ensina fazer isso que eu quero fazer

 

verificar se existe dados na tabela mysql com if e else verdade ou falso

 

ai com mais tempo vou dar uma olhada codico por codico

pois minha pagina ta uma salada de fruta :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí 666999, bom dia!!!

Desculpe por não ter lhe respondido ainda ontem ok (Namorada tomou conta do PC...rsss, coisas da vida sabe...rsss).

Bom...mediante o que você disse antes

verificar se existe dados na tabela mysql com if e else verdade ou falso

...

Ainda fico com o mysql_num_rows($consultar), pq com ele você pode fazer isso tranquilamente...agora só temos que ver....o pq que não esá funcionando com você...

Eu vou criar essa sua mesma tabela aí...e fazer alguns testes aki ok...daí volto mais daki a pouco com os resultados beleza..

 

Fique no aguardo...

 

Bem amigos do Forum iMasters...aki estamos de volta definitivamente (tô meio empolgado com a Copa sabe...rss).

 

Meu caro 666999, fiz alguns testes...na verdade...foi apenas 1 e deu certo...estarei postando aki os arquivos que criei...daí é só copiar e colar...e depois verificar em seu navegador ok.

 

Estrutura SQL e Dados

SET FOREIGN_KEY_CHECKS=0;

DROP DATABASE IF EXISTS `banco_teste`;

CREATE DATABASE `banco_teste`
    CHARACTER SET 'latin1'
    COLLATE 'latin1_swedish_ci';

USE `banco_teste`;

#
# Structure for the `produtos` table : 
#

DROP TABLE IF EXISTS `produtos`;

CREATE TABLE `produtos` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `Login` varchar(50) NOT NULL,
  `Senha` char(15) NOT NULL,
  `Nome` varchar(200) NOT NULL,
  `Email` varchar(200) NOT NULL,
  `Pergunta` varchar(200) NOT NULL,
  `estabelecimentonome` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `descricao` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `telefone` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `telefone2` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `mostraremail` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `site` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `cod_estados` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `cod_cidades` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `bairro` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `rua` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `numero` varchar(255) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL,
  `foto` varchar(255) NOT NULL,
  `categoria` int(11) NOT NULL,
  `tabela1` varchar(200) NOT NULL,
  `chave` varchar(200) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;

#
# Data for the `produtos` table  (LIMIT 0,500)
#

INSERT INTO `produtos` (`id`, `Login`, `Senha`, `Nome`, `Email`, `Pergunta`, `estabelecimentonome`, `descricao`, `telefone`, `telefone2`, `mostraremail`, `site`, `cod_estados`, `cod_cidades`, `bairro`, `rua`, `numero`, `foto`, `categoria`, `tabela1`, `chave`) VALUES 
  (1,'roberto','123','Roberto da Silva Luz','roberto@rgfsistemas.com.br','Quem somos e de onde viemos?','RGF - Sistemas','Descrição do quê mesmo?','0(xx) xxxx-xxxx','0(xx) xxxx-xxxx','1','www.rgfsistemas.com.br','1','1','Aqui','Aquela','666','',0,'1','1');
COMMIT;

Arquivo PHP

 

<?php
$servidor = "localhost"; //computador onde o servidor de banco de dados esta instalado
$usuario = "root"; //seu usuario para acessar o banco
$senha = "vereda"; //senha do usuario para acessar o banco
$banco = "banco_teste"; //banco que deseja acessar

$conexao = mysql_connect($servidor, $usuario, $senha) or die (mysql_error());
mysql_select_db($banco);


$sql = 'SELECT * FROM `produtos` WHERE `produtos`.`tabela1` = 1';
$enviarSql = mysql_query($sql);
if(mysql_num_rows($enviarSql) > 0 ){
	
	echo "Tabela com dados";
}
else{
	
	echo "tabela sem dados";
}
?>

Bom...tá bem simplesinho...copia e execute aí para ok.

 

Qualquer coisa...é só postar aki beleza.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vlw Roberto_S_Luz

tipo tive uma ideia :mellow:

 

vou criar outra tabela mysql com nome "ver"

quando o usuario digita algum dados para gravar no bd mysql ele grava na tabela "ver" o dados "1"

e quando o usuario nao digita nada ele grava na tabela "ver" o dados "0"

 

assim da pra mim usar um else e assim eu mostro oque tenho de mostrar na tela ^_^

 

 

só tem um porem :huh:

tipo tem como mudar este

codico que voce postou e colocar um esquema um where id assim ele nao iria listar todos os cadastro da tabela1 e sim somente aquele que tem o id correto :huh:

$sql = 'SELECT * FROM `produtos` WHERE `produtos`.`tabela1` = 1'; 
pq tipo ele verifica todos os cadastro da tabela1 :(

 

é possivel ? :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom...não entendi muito o que você falou mas...vamos lá. ;)

 

Bom...ter tem...só preciso entender melhor o seu problema... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Bom...esse id que você quer filtrar...é de qual tabela?

Bom...caso seja da mesma tabela produto...basta você trocar o campo tabela1 pelo id,

Veja um exemplo.

 

$sql = 'SELECT * FROM `produtos` WHERE `produtos`.`id` = 1';

Bom...desta forma aí...irá verificar e lhe retornar uma resposta da linha de acordo com o id que você informou.

 

É mais ou memos isso que você quer?

 

Qualquer coisa...estou por aki ok (por enquanto...rss).

Flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

tipo minha pagina ela é passada um id que é da tabela 'produtos'

 

e tenho isso para selecionar o id que foi passado

$sql = "SELECT * FROM produtos WHERE id='$id'";

e mostrar somente resultados do cadastro com id correto

 

queria juntar mais esse que você fez

+ esse que verifica se existe dados na tabela1

$sql = 'SELECT * FROM `produtos` WHERE `produtos`.`tabela1` = 1';

 

algo parecido assim

$sql = 'SELECT * FROM `produtos` WHERE id='$id'  depois >> `tabela1` = 1';

olha foto talvez voce consiga entender

Imagem Postada

 

mais acho que nao vai dar certo

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

algo parecido assim

 

$sql = 'SELECT * FROM `produtos` WHERE id='$id' depois >> `tabela1` = 1';

você pode fazer isso utilizando um operador AND

Exemplo

algo parecido com isso

 

 

$sql = 'SELECT * FROM `produtos` WHERE id='$id' AND `tabela1` = 1';
Ou seja...

Selecione *(tudo) da tabela produtos where(onde) o id seja igual a $id AND(e) o campo tabela1 seja igual a 1.

 

Agora se você quiser saber se existe algum dado apenas no campo tabela1, é só especificar ela antes do FROM

Exemplo

 

$sql = 'SELECT tabela1 FROM `produtos` WHERE id='$id' AND `tabela1` = 1';
Ou seja...

Selecione o do campo tabela1 da tabela produtos where(onde) o id seja igual a $id AND(e) o campo tabela1 seja igual a 1.

 

Abraços...

 

Ahh sim...só um detalhe...em campos inteiros...não necessita de aspas ok

id='$id'

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para você verificar se existe realmente dados dentro da tabela você não precisa utilizar o argumento WHERE, você não precisa filtrar nada na tabela.

Tente utilizar o codigo como já foi postado, assim.

 

$consultar =mysql_query("SELECT * FROM produtos");
 if(mysql_num_rows($consultar) > 0){
    echo "tem dados na tabela";
  }
  else{
    echo "vazio";
  }

 

ou da maneira que sempre uso, mais isso não tem diferença:

 

$consultar =mysql_query("SELECT * FROM produtos");
 if($resultado = mysql_fetch_array($consultar))
    echo "tem dados na tabela";
  else
    echo "vazio";

Espero ter ajudado, VLW...

 

tentei assim

$consultar =mysql_query("SELECT *  FROM produtos WHERE tabela1='$tabela1' ");
 if(mysql_num_rows($consultar) > 0){
    echo "tem dados na tabela";
  }
  else{
    echo "vazio";
  }

apareceu isso :(

 

Notice: Undefined variable tabela1

 

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.