Ir para conteúdo
Fórum Script Brasil
  • 0

Formulário não envia dados


Kuat

Pergunta

Olá a todos, sou novato no fórum e este é o meu primeiro post...

Fui recomendado por um amigo a vir neste fórum, e vejo que foi uma boa recomendação.

Então, o problema é o seguinte, tenho um banco de dados com X tabelas, e preciso que na minha página aparecam X checkboxes com o nome das tabelas...

Logo teria que ter um código em php dentro do formulário contanto quantos checkboxes vão aparecer, e o qual tabela eles selecionam.

O código está pronto, mas recebo sempre o formulário em branco.

segue abaixo o script:

<?php
    $conexao = mysql_connect("localhost","root","") or die ("fala na conexao");
    echo "conexao realizada com sucesso<br>";
    mysql_select_db("web") or die ("fala na seleção do bando de dados<br>");    
    echo "banco de dados selecionado com sucesso<br>";
    $resultado = mysql_query ("show tables");
    $n_tabelas = mysql_num_rows($resultado);
    while ($tabela = mysql_fetch_row($resultado));
    {
?>
        <form action="index2.php" method="post">
        <br>Qual tabela gostaria de visualizar?<br>
<?php
        for ($n=0;$n<$n_tabelas;$n++)
        {
            echo "<input name='$tabela[$n]' type='checkbox' value='$tabela[$n]' />$tabela[$n]<br>";    
            echo "<input type='hidden' name'n' value='<?php [$n] ?>'/>";
            echo "<input type='hidden' name'tabela' value='<?php $tabela[$n] ?>'/>";
        }

    }
?>
    <input type="hidden" name"n_tabelas" value="<?php $n_tabelas ?>"/>
    <input type="submit" value="visualizar">
    </form>

alguém poderia me ajudar?

Agradeço a todos antecipadamente.

Editado por Kuat
Link para o comentário
Compartilhar em outros sites

8 respostass a esta questão

Posts Recomendados

  • 0

Iaew, bom, não sei se esse é o melhor metodo mas eu faria assim:

<form method="post" action="teste3.php">
<?php

$host = 'localhost';
$user = 'usuario do banco';
$pass = 'senha do banco';
$db = 'sua tabela';

mysql_connect($host,$user,$pass) or die("erro");
mysql_select_db($db);

$selecionar = mysql_query('show tables');
$resul = mysql_num_rows($selecionar);
while($tables = mysql_fetch_row($selecionar)){

    foreach($tables as $valor => $id){
        $tabelas = $id;
    }
    print '<input type="checkbox" value="'.$tabelas.'" name="tabelas[]">'.$tabelas.'<br />';
}

?>
<input type="submit" value="enviar">
</form>
Pagina que recebe os dados
<?php

foreach($_POST['tabelas'] as $valor){
    
    print $valor.'<br />';
}

?>

Qualquer coisa fala aew.

falora.

Editado por tonzinhu
Link para o comentário
Compartilhar em outros sites

  • 0

Realmente, a lógica é basicamente a mesma, e agora que eu fui ver alguns errinhos, como por exemplo o cabeçalho do formulário estar dentro do while, entre outras coisas

como esse código faz parte do meu trabalho, eu só vou poder testá-lo na segunda.

Creio eu que funcionará desta forma.

Obrigado tonzinhu.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom... a primeira parte funcionou beleza, mas você poderia me explicar essa sintaxe estranha que eu ainda não conheço ".tabela." e como funciona a linha de comando "foreach"?

eu ainda não sei como tratar essa variável na segunda página, pois eu esperava tratá-la como um array tipo vetor, para poder mostrar o conteúdo de cada tabela na mesma página.

Link para o comentário
Compartilhar em outros sites

  • 0

não entendi isso ".tabela." ....explique melhor.

E o foreach é o seguinte:

Ele resgata os valores enviados pelo form

<input type="checkbox" value="'.$tabelas.'" name="tabelas[]">'.$tabelas.'<br />
você pode reparar que no name="" eu coloquei uns "[]", isso faz dele um array. o foreach() faz um loop e resgata todas elas.
foreach($_POST['tabelas'] as $valor){

as = como

Qualquer coisa fala ai.

Ps: não sou muito bom pra explicar hehe..só na pratica mesmo.

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --Kuat --

Pois é... é que eu não conhecia até então o porque de botar um ponto ante e outro depois na variável... ainda não entendi o que isso quer dizer.

No caso do foreach criar um array é que eu pensei nisso, mas quando eu fiz um teste mandando imprimi tabela[1] ele me mostrou a primeira letra do primeiro banco de dados.

Isso me embananou a cabeça toda O.o

Link para o comentário
Compartilhar em outros sites

  • 0

ah tah..os pontos.

são pra concatenar. (conectar, ligar).

<?
// o operador de concatenção é "."

$nome = "Carlos";
$cidade = "São Paulo";

echo "Meu nome é " . $nome . " e eu moro em " . $cidade . ".";
?>

fonte: http://www.arquivodecodigos.net/arquivo/vi...hp?qual_dica=60

Só dar uma olhada nos metodos de concatenação.

qualquer coisa fala ai.

falora

Link para o comentário
Compartilhar em outros sites

  • 0

Pelos teste que eu fiz aqui percebi uma coisa...

ele vai concatenando uma caracter por vez no array até acabar o nome da tabela, ai ele pula para a próxima posição do vetor de array...

ai ficou difícil de resolver veja porque...

eu segui exatamente o que você me recomendou, porém ele funciona quando eu seleciono apenas uma tabela, ele me mostra a tabela certinho...

mas quando eu seleciona 2 ou mais ele dá vários erros de sql...

O código está assim:

Primeira parte do código

<form method="post" action="index2.php">
<?php
    $conexao = mysql_connect("localhost","root","") or die ("fala na conexao");
    echo "conexao realizada com sucesso<br>";
    mysql_select_db("web") or die ("fala na seleção do bando de dados<br>");    
    echo "banco de dados selecionado com sucesso<br>";
    print 'Qual tabela gostaria de visualizar?<br>';
    $resultado = mysql_query ("show tables");
    $n_tabelas = mysql_num_rows($resultado);
    while($tables = mysql_fetch_row($resultado))
    {
        foreach($tables as $valor => $id)
        {
            $tabelas = $id;
        }
        print '<input type="checkbox" value="'.$tabelas.'" name="tabelas[]">'.$tabelas.'<br />';
    }

    print '<input type="submit" value="visualizar">
    </form>';
    mysql_close($conexao);
?>
Segunda parte do código:
<?php
$conexao = mysql_connect("localhost","root","") or die ("fala na conexao");
mysql_select_db("web") or die ("fala na seleção do bando de dados<br>");
foreach($_POST['tabelas'] as $valor)
{            
    $resultado = mysql_query("SELECT * FROM $valor");
     $numero_linha = mysql_num_rows($resultado);
    $colunas = mysql_num_fields($resultado);
    echo "foram encontradas $numero_linha linhas<br>";
    echo "foram encontradas $colunas colunas<br>";
    while ($conteudo_linha = mysql_fetch_row($resultado))
    {
        for ($i=0;$i<$numero_linha;$i++)
           {
            for($u=0;$u<$colunas;$u++)
            {
                if ($conteudo_linha[$i]=="")
                {
                    echo "|-=vazio=-|\n";
                    $i++;
                }
                else
                {
                    echo "|$conteudo_linha[$i]|\n";
                    $i++; 
                }
            }
            echo "<br>";
           }
    }
    mysql_close($conexao);
}
?>

E agora?

eu preciso que ele verifique quantas tabelas o usuário selecionou e mostre a ele as mesmas...

Editado por Kuat
Link para o comentário
Compartilhar em outros sites

  • 0

Problema resolvido

eu estava mandando o php fechar conexão com o mysql dentro do laço foreach...

assim ele mostrava os dados da primeira tabela corretamente, e depois fechava a conexão, e quando ia mostrar os dados da segunda tabela ele dava erro, pois não estava conectado ao mysql

xP

Agora que está resolvido, o meu pequeno sistema de visualizar tabelas está completo

Obrigado a todos!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...