Listando membros.

Suporte à dúvidas gerais relacionadas ao phpBB.
Avatar do usuário
doutrinador
Membro Recente
Membro Recente
Mensagens: 300
Registrado em: 22 Ago 2009, 12:11
Nome Real: Carlos Angelo
MSG 100+Avatar
Você favoritou esta postagem

Listando membros.

  • Remover marcador da postagem
  • Mensagem 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á.
    Avatar do usuário
    doutrinador
    Membro Recente
    Membro Recente
    Mensagens: 300
    Registrado em: 22 Ago 2009, 12:11
    Nome Real: Carlos Angelo
    MSG 100+Avatar
    Você favoritou esta postagem

    Re: Listando membros.

  • Remover marcador da postagem
  • Mensagem 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?
    Trancado