Página 1 de 1

Listando membros.

Enviado: 02 Jul 2011, 09:57
por doutrinador
URL do Fórum: http://www.forumdepizzas.com.br

Bom dia, ontem, proximo a meia noite postei sobre o mesmo assunto, mas o topico sumiu, hehehe.
Vou pastar novamente, mas se o problema for falta de talento meu para efetuar a busca, peço por favor aos moderadores para excluir este topico.

Segui o tutorial do Chico Goes para listar membros e funcionou perfeitamnente.
Preciso adicionar apenas mais um campo na pesquisa, cpf.
Tentei de varias maneiras, porem, sempre retornou erro.

O tutorial é este:

kb.php?a=81&hilit=listar

São apenas dois arquivos:

gerar.php

Código: Selecionar todos

    <?
    /***********************************************************************************
    SCRIPT......: Gera um arquivo XML listando membros do Fórum
    AUTOR ......: Chico Gois
    DATA .......: 22/06/2005
    /***********************************************************************************/

    //CONECTA AO BANCO DE DADOS (Substitua aonde indicado)
    $conn = @mysql_connect("localhost", "nome_usuario","senha")
          or die("ERRO NA CONEXÃO");
     
    //SELECIONA A BASE DE DADOS A SER UTILIZADA (Substitua aonde indicado)
    $db  = @mysql_select_db("nome_BD", $conn)
         or die("ERRO NA SELEÇÃO DA BASE DE DADOS");
     
    //SQL
    $sql = @mysql_query("
         SELECT A.user_id, A.username, A.user_email FROM phpbb_users A")
                    or die("ERRO NO SQL");
     
    //TOTAL DE LINHAS AFETADAS PELA CONSULTA
    $row = mysql_num_rows($sql);
     
    //VERIFICA SE A PESQUISA RETORNOU ALGUMA LINHA
    if($row > 0) {
       
            //ARQUIVO
            $arquivo = "membros.xml";
           
            //ABRE O ARQUIVO(SE NÃO EXISTIR, CRIA)
            $ponteiro = fopen($arquivo, "w");
           
            //ESCREVE NO ARQUIVO XML
            fwrite($ponteiro, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\r\n");
            fwrite($ponteiro, "<usuarios>\r\n"); 
           
            for($i=0; $i<$row; $i++) {
             
            //PEGA OS DADOS DO SQL
            $id = mysql_result($sql,$i,"A.user_id");
            $nome = mysql_result($sql,$i,"A.username");
            $email = mysql_result($sql,$i,"A.user_email");
             
             
            //MONTA AS TAGS DO XML
            $conteudo = "<relatorio>\r\n";
            $conteudo .= "<id>$id</id>\r\n";
            $conteudo .= "<nome>$nome</nome>\r\n";
            $conteudo .= "<email>$email</email>\r\n";
            $conteudo .= "</relatorio>\r\n";         
            //ESCREVE NO ARQUIVO
            fwrite($ponteiro, $conteudo);
            }//FECHA FOR
           
            //FECHA A TAG AGENDA
            fwrite($ponteiro, "</usuarios>");
           
            //FECHA O ARQUIVO
            fclose($ponteiro);
           
            //MENSAGEM
            echo "<h2><font face=Verdana>Listando usuários do fórum usando XML</h2><br>";
            echo "O arquivo <b>".$arquivo."</b> foi gerado com SUCESSO !<br><br>";
            echo "Basta abrir o arquivo <b>lista.php</b> no navegador" ;
    }//FECHA IF($row)
    ?>
e listar.php

Código: Selecionar todos

    <?
    /***********************************************************************************
    SCRIPT......: Exibe uma listagem de todos os usuarios do fórum
    AUTOR ......: Chico Gois
    DATA .......: 22/06/2005
    /***********************************************************************************/

       //FUNÇÃO DA TAG INICIAL DO ARQUIVO XML
       function FuncInicial($parser, $elemento) {
          if($elemento == "USUARIOS") {
             echo "<table cellpading=0 cellspacing=0 border=0 width=50%>";
             echo "<tr><td bgcolor=#7B9AB5 align=center>";
             echo "<font face=Verdana size=2 color=FFFFFF><b>Listagem de usuários fórum phpBB";
          }
          elseif($elemento == "RELATORIO")
             echo "<tr><td height=20>";
          elseif($elemento == "ID") {
             echo "<tr><td bgcolor=#CCCC00>";
             echo "<font face=Verdana size=2><b>";
          }
          elseif($elemento == "NOME") {
             echo "<tr><td bgcolor=#CCCC99>";
             echo "<font face=Verdana size=2><b>";
          }
          elseif($elemento == "EMAIL") {
             echo "<tr><td bgcolor=#CCCCCC>";
             echo "<font face=Verdana size=2>";
          }
       }//FECHA FUNCTION FUNCINICIAL
       
       
       //FUNÇÃO PARA EXIBIR OS DADOS DO DOCUMENTO XML
       function FuncDados($parser, $dados) {
          echo $dados;
       }//FECHA FUNCTION FUNCINICIAL
       
       
       //FUNÇÃO DA TAG INICIAL DO DOCUEMENTO XML
       function FuncFinal($parser, $elemento) {
          if($elemento == "USUARIOS")
             echo "</b></font></td</tr></table>";
          elseif($elemento == "RELATORIO")
             echo "</td></tr>";
          elseif($elemento == "ID")
             echo "</b></font></td></tr>";
          elseif($elemento == "NOME")
             echo "</font></td></tr>";
          elseif($elemento == "EMAIL")
             echo "</font></td></tr>";
       }//FECHA FUNCTION FUNCFINAL
       
       //CRIA O PARSER XML
       $parser = xml_parser_create();
       
       //DEFINE AS FUNÇÕES
       xml_set_element_handler($parser, "FuncInicial", "FuncFinal");
       xml_set_character_data_handler($parser, "FuncDados");
       
       //ABRE O ARQUIVO XML PARA LEITURA
       $ponteiro = fopen("membros.xml", "r");
       
       //INICIA A ANÁLISE DO DOCUMENTO XML
       while($dados = fread($ponteiro, 4096)) {
          //INICIA A ANÁLISE DO DOCUMENTO XML
          xml_parse($parser, $dados);
       }//FECHA WHILE
       
       //LIBERA A MEMÓRIA USADA PELO PARSER
       xml_parser_free($parser);
    ?>
pesquisei na tabela pelo bd e encontrei isso:

Código: Selecionar todos

SELECT *
FROM `bancodedados`.`phpbb_profile_fields`
WHERE (
`field_id` LIKE 'cpf'
OR `field_name` LIKE 'cpf'
OR `field_type` LIKE 'cpf'
OR `field_ident` LIKE 'cpf'
OR `field_length` LIKE 'cpf'
OR `field_minlen` LIKE 'cpf'
OR `field_maxlen` LIKE 'cpf'
OR `field_novalue` LIKE 'cpf'
OR `field_default_value` LIKE 'cpf'
OR `field_validation` LIKE 'cpf'
OR `field_required` LIKE 'cpf'
OR `field_show_on_reg` LIKE 'cpf'
OR `field_show_on_vt` LIKE 'cpf'
OR `field_show_profile` LIKE 'cpf'
OR `field_hide` LIKE 'cpf'
OR `field_no_view` LIKE 'cpf'
OR `field_active` LIKE 'cpf'
OR `field_order` LIKE 'cpf'
)
LIMIT 0 , 30
Até aí tudo ok, só não sei como fazer esta busca funcionar editando o script.
Se der pra fazer a busca em todos os campos do perfil do membro, sem problemas.
Acredito que seja esta a tabela:
phpbb_profile_fields

Bom, acho que consegui explicar minha duvida, mas qualquer coisa estou por aqui.

Obrigado desde já.

Re: Listando membros.

Enviado: 04 Jul 2011, 14:26
por doutrinador
Mudando a pergunta, já que consegui modificar algumas coisas e que me deixaram bastante interessado no assunto.

Já consegui retornar a pesquisa que eu queria atraves de uma lista, simpliemente substituindo a tabela do Bd e os campos.

Mas ainda não ficou como eu quero.

Pergunta:

Onde encontrar um tutorial sobre estas pesquisas no Mysql?

Como faço pra aprender mais sobre isso?