Bezerk 3 Denunciar post Postado Novembro 4, 2011 Então com este código é só você mandar imprimir apenas os valores que não são vazios; include "config/config.php"; $busca=mysql_query("SELECT * FROM campeonatos WHERE id='$id_campeonato'"); if(!mysql_num_rows($busca)){ echo 'Nenhum dado cadastrado na base de dados'; }else{ echo "<select name=\"categoria\" id=\"categoria\">"; while($ver=mysql_fetch_row($busca)){ $id=$ver[0]; $categorias=$ver[10]; }} $categorias=unserialize($categorias); $array = array_filter($categorias); foreach($array as $valor){ $valor=$valor; if ( $valor != "" ){ echo "<option value='$valor'>$valor</option>"; } } Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Novembro 4, 2011 Bom, quem nunca respondeu um tópico com sono que atire a primeira pedra. Agora dei uma olhada melhor no seu tópico original, lá atrás e notei uma coisa. As categorias vêm do formulário, via POST e você simplesmente as adiciona num array, sem verificar nem nada. Oras, você deveria ter verificados antes: $categoria1 = $_POST['categoria1']; $categoria2 = $_POST['categoria2']; $categoria3 = $_POST['categoria3']; $categoria4 = $_POST['categoria4']; $categoria5 = $_POST['categoria5']; $categorias = array(); if( ! empty( $categoria1 ) ) { $categorias[] = $categoria1; } // E continua para as outras 4 restantes Ou aplicar array_filter() depois de montado a matriz: $categorias=array_filter( array($categoria1,$categoria2,$categoria3,$categoria4,$categoria5) ); Daí já cadastrava "limpo" no banco de dados. Claro, ainda não esclarece o porquê de array_filter() não ter funcionado lá embaixo, depois de resgatadas as informações, mas pelo menos você faz certo. if( $busca !== FALSE ) { Esta intrução está errada! Teste assim; if ( ! $busca ) { Mesma coisa para $data. Você sabe o tamanho da dor de cabeça que usar APENAS o operador de nagação pode causar? Jura que você nunca viu no Manual do PHP uns alertas de atenção gigantes, em vermelho, como esse? Por acaso você leu a documentação de mysql_query() e mysql_fetch_assoc() que especificam que um dos valores de retorno é FALSE? O único complemento que eu faria ao código que você se referiu na mensagem supra citada seria o de incluir mysql_num_rows(), ficando, no final, assim: $busca = mysql_query( "SELECT `nome_do_campo` FROM campeonatos WHERE id='58'" ); if( $busca !== FALSE ) { if( (int) mysql_num_rows() > 0 ) { $data = mysql_fetch_assoc( $busca ); if( $data !== FALSE ) { // O arroba suprime o E_NOTICE indesejado $data = @unserialize( $data ); if( $data !== FALSE ) { // Descomentar a linha abaixo se ainda tiver dados em branco // $data = array_filter( $data ); print '<pre>'; print_r( $data ); } } else { echo 'Nenhum dado cadastrado na base de dados'; } } else { echo 'Nenhum dado cadastrado na base de dados'; } } O Manual é seu amigo. Não precisa ter medo de lê-lo com mais cuidado. ;) Compartilhar este post Link para o post Compartilhar em outros sites
Bezerk 3 Denunciar post Postado Novembro 5, 2011 [extract]Você sabe o tamanho da dor de cabeça que usar APENAS o operador de nagação pode causar? Jura que você nunca viu no Manual do PHP uns alertas de atenção gigantes, em vermelho, como esse? Por acaso você leu a documentação de mysql_query() e mysql_fetch_assoc() que especificam que um dos valores de retorno é FALSE?[/extract] A resposta é não para as três perguntas. Eu uso a classe PDO para conexão com BD, então não conheço bem o recurso específico para o mysql, logo, nunca vi tais alertas de atenção gigantes em vermelho A respeito de ler o manual do PHP, eu o leio frequentemente mas apenas as partes que me interessam. No mais, peço desculpas aos usuarios do fórum pela informação errada que postei. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Novembro 5, 2011 Sem problemas, mas cuidado com isso de ler apenas o que te interessa. Falo por experiência prórpia. No começo também achava que se eu soubesse só aquilo que me interessava estava tranquilo. Com o passar do tempo fui vendo cada peculiaridade de cada função, e que cada pequena coisa exigia uma verificação diferente para que não houvesse problemas. Quanto ao uso das funções mysql_ é, de fato, o usuários está beeeem atrasado nesse ponto. Já fica o alerta, essa extensão está em vias de ser descontinuada. Portanto ou passe a usar a PDo (se houver a possibilidade de migração de BD) ou a MySQLi que é a "sucessora", digamos assim, da MySQL. Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Novembro 5, 2011 No começo também achava que se eu soubesse só aquilo que me interessava estava tranquilo. Com o passar do tempo fui vendo cada peculiaridade de cada função, e que cada pequena coisa exigia uma verificação diferente para que não houvesse problemas. Eu também. :huh: Compartilhar este post Link para o post Compartilhar em outros sites
Bezerk 3 Denunciar post Postado Novembro 7, 2011 Eu leio o manual do PHP, tenho alguns livros e pesquiso frequentemente sobre o assunto. Acho que ninguém, nem mesmo o Rasmus Leedorf saiba de cabeça todas as funções e métodos do PHP. Então, particularmente, não vejo necessidade prática de se decorar o manual e guardar na cabeça tudo sobre a linguagem. Compartilhar este post Link para o post Compartilhar em outros sites
Chirlison 1 Denunciar post Postado Novembro 7, 2011 Boa tarde a todos! Pessoal, depois de fazer a verificação das categorias antes de colocá-las no array, agora esta tudo funcionando corretamente. Muito agradecido aos colegas: jhrhp, Bruno Augusto, Bezerk e Carlos Coelho. O meu muito abrigado a vocês, pois me ajudaram bastante. Vlw pessoal. t+. Abaixo, segue o código final: //Aqui, eu pego as categorias que vieram do formulário via método post $categoria1 = $_POST['categoria1']; $categoria2 = $_POST['categoria2']; $categoria3 = $_POST['categoria3']; $categoria4 = $_POST['categoria4']; $categoria5 = $_POST['categoria5']; $categorias = array(); if( ! empty( $categoria1 ) ) { $categorias[] = $categoria1; } if( ! empty( $categoria2 ) ) { $categorias[] = $categoria2; } if( ! empty( $categoria3 ) ) { $categorias[] = $categoria3; } if( ! empty( $categoria4 ) ) { $categorias[] = $categoria4; } if( ! empty( $categoria5 ) ) { $categorias[] = $categoria5; } //Aqui é para gravar o array em uma tabela mysql $todas_categorias = serialize($categorias); //Aqui, eu insiro as categorias no banco dedados mysql_query("INSERT INTO campeonatos (categorias) values ('$todas_categorias')")or die("ERRO ENCONTRADO: '.mysql_error()"); //Aqui, eu recupero as categorias no banco de dados e as imprimo dentro de um Select include "config/config.php"; $busca=mysql_query("SELECT * FROM campeonatos WHERE id='$id_campeonato'"); if(!mysql_num_rows($busca)){ echo 'Nenhum dado cadastrado na base de dados'; }else{ echo "<select name=\"categoria\" id=\"categoria\">"; while($ver=mysql_fetch_row($busca)){ $id=$ver[0]; $categorias=$ver[10]; }} //Aqui é para recuperar o array em uma tabela mysql $categorias=unserialize($categorias); foreach($categorias as $valor){ $valor=$valor; if ( $valor != "" ){ echo "<option value='$valor'>$valor</option>"; } } Compartilhar este post Link para o post Compartilhar em outros sites