9
respostas

Exibir dados do Banco MYSQL

Pessoal, tenho um formulário:

Porem na hora que é direcionado para o arquivo listar_dados.php as informações não são listadas.... Alguém teria alguma dica...?

9 respostas

Olá Ricardo,

Não é exibida nenhuma mensagem de erro?

Compartilha o seu código por favor pra gente poder olhar.

Pois! é nenhuma!!! vou mexer aqui...

Olha só!!! <?php // Acesso ao banco de dados define("BD_USUARIO", "root"); define("BD_SENHA", "root"); define("BD_DSN", "mysql:dbname=mega_online_987;host=localhost");

// ...

$query = sprintf("SELECT * FROM meg12_xoptions");

Opa Ricardo, verifica por favor o envio do código, acho que tá faltando algumas partes.

Você pode utilizar o botão <> INSERIR CÓDIGO para colocar o código mais organizado aqui.

Blz!! Vamos! Lá!

Index.php

<?php require_once 'classes/conexao.php' ?>
<!DOCTYPE html>
<html lang="pt-br">
          <head>
                <meta charset="utf-8">
                <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
                <meta name="description" content="Sistema de Consulta no Dados">
                <meta name="author" content="Ricardo L P Vieira P759057">
                <link rel="icon" href="../../../../favicon.ico">
                <!-- Bootstrap CSS -->
                <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
                <!-- JavaScript (Opcional) -->
                <!-- jQuery primeiro, depois Popper.js, depois Bootstrap JS -->
                <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
                <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
                <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
                <!-- DataTables -->
                <link rel="stylesheet" href="DataTables/datatables.min">
                <script src="DataTables/datatables.min"> </script>


                <script type="text/javascript" language="javascript">

                $(document).ready(function () {
                    $('#listar_dados').DataTable({
                        "processing": true,
                        "serverSide": true,
                        "ajax": {
                        "url": "proc_pesq_user.php"
                        "type": "POST"




        }

    });
} );

                </script>




            <title>Coletando Dados do MySql</title>
        </head>
  <body>
    <h1>Dados Vindo do Banco de Dados</h1>
        <table id="listar_dados" class="table table-striped" cellspacing="0" width="100%">
            <thead>
                <tr>
                    <th class="th-sm">Name              
                    </th>
                    <th class="th-sm">Position
                    </th>
                <th class="th-sm">Office

                </th>
                <th class="th-sm">Ação

                </th>


                </tr>
          </thead>





<?php
    // se o número de resultados for maior que zero, mostra os dados
    if($total > 0) {
        // inicia o loop que vai mostrar todos os dados
        do {
?>    

            <tbody>    
            <tr>
            <td><?=$linha ['option_name']?></td>      <td><?=$linha['option_value']?></td>
            <td><?=$linha['option_id']?></td>          <td><?=$linha['autoload']?></p></td>                    
            </tr>

            </tbody>
<?php
        // finaliza o loop que vai mostrar os dados
        }while($linha = mysql_fetch_assoc($dados));
    // fim do if 
    }
?>





</body>
</html>


<?php
// tira o resultado da busca da memória
mysql_free_result($dados);
?>

conexao.php

<?php
// definições de host, database, usuário e senha
$host = "localhost";
$db   = "mega_online_987";
$user = "root";
$pass = "usbw";

// conecta ao banco de dados
$con = mysql_connect($host, $user, $pass) or trigger_error(mysql_error(),E_USER_ERROR); 

// seleciona a base de dados em que vamos trabalhar
mysql_select_db($db, $con);

// cria a instrução SQL que vai selecionar os dados
$query = sprintf("SELECT * FROM meg12_xoptions");

// executa a query
$dados = mysql_query($query, $con) or die(mysql_error());

// transforma os dados em um array
$linha = mysql_fetch_assoc($dados);

// calcula quantos dados retornaram
$total = mysql_num_rows($dados);


//Recebe a Requisição da Pesquisa
//$requestData $_REQUEST;

//Indice
//$colunns = array{
    //array('0' => 'option_id' ),
    //array('1' => 'option_name' ),
    //array('2' => 'option_value' ),

//};


?>

da forma como esta funciona... o problema é que eu preciso colocar um botão de search, pra quando foi digitado alguma coisa ser mostrada....

Acredito que apenas ativando o DataTables você já vai ter a busca funcionando sem precisar de nada extra.

Esse seu código já está bem perto de funcionar, mas tem alguns detalhes importantes que devem ser corrigidos.

No seu script você pode fazer a seguinte substituição:

<script type="text/javascript" language="javascript">

    // Remove isso:

        // $(document).ready(function() {
        //     $('#listar_dados').DataTable({
        //         "processing": true,
        //         "serverSide": true,
        //         "ajax": {
        //             "url": "proc_pesq_user.php",
        //             "type": "POST"
        //         }

        //     });
        // });

    // E adiciona isso:

        $(document).ready(function() {
            $('#listar_dados').DataTable();
        });
    </script>

Já na tabela eu recomendo as seguintes mudanças:

  1. Remover o <tbody> do loop, isso vai acabar criando vários dessa tag e vai quebrar o html.

  2. Adicionar o fechamento da tag <table> que está faltando no final.

  3. Remover a tag extra </p> que está dentro do loop.

Resultado:

<table id="listar_dados" class="table table-striped" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th class="th-sm">Name</th>
            <th class="th-sm">Position</th>
            <th class="th-sm">Office</th>
            <th class="th-sm">Ação</th>
        </tr>
    </thead>

    <tbody>
        <?php
        // se o número de resultados for maior que zero, mostra os dados
        if ($total > 0) {
            // inicia o loop que vai mostrar todos os dados
            do {
                ?>

                <tr>
                    <td><?= $linha['option_name'] ?></td>
                    <td><?= $linha['option_value'] ?></td>
                    <td><?= $linha['option_id'] ?></td>
                    <td><?= $linha['autoload'] ?></td>
                </tr>

        <?php
                // finaliza o loop que vai mostrar os dados
            } while ($linha = mysql_fetch_assoc($dados));
            // fim do if
        }
        ?>
    </tbody>
</table>

Após essas mudanças a caixa de busca do DataTables voltou a funcionar, junto da paginação e tudo mais.

Lucas Blz!! Valeu! As orientações! Cara!! Outra coisa eu precisar fazer esse sistema funcionar com um search, ou seja assim que for digitado algo ele retornar um resultado....

Att Ricardo

Com o DataTables funcionando você já vai ter uma pesquisa pronta pra usar, sem precisar de mais nada.

Testando aqui, já aparece a caixa de pesquisa funcionando, não precisa nem de botão, é só digitar que já vai fazendo a busca.

No seu caso está funcionando o DataTables?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software