666999 0 Denunciar post Postado Junho 23, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 23, 2010 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
666999 0 Denunciar post Postado Junho 23, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 23, 2010 beleza...mais esse item 'tabela1' existe na tabela produtos? Compartilhar este post Link para o post Compartilhar em outros sites
666999 0 Denunciar post Postado Junho 23, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 23, 2010 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
666999 0 Denunciar post Postado Junho 23, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 23, 2010 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
666999 0 Denunciar post Postado Junho 23, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 24, 2010 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
666999 0 Denunciar post Postado Junho 24, 2010 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
Roberto_S_Luz 2 Denunciar post Postado Junho 24, 2010 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
666999 0 Denunciar post Postado Junho 25, 2010 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 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
Roberto_S_Luz 2 Denunciar post Postado Junho 25, 2010 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
root_ 0 Denunciar post Postado Junho 25, 2010 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
666999 0 Denunciar post Postado Junho 25, 2010 Consegui kkkkkkkk http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Vlw mesmo Roberto_S_Luz ^_^ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Resolvido Compartilhar este post Link para o post Compartilhar em outros sites