Inserir dados no Mysql com PHP utilizando fomulário html
Sou iniciante em programação e preciso de ajuda e agradeço desde já a colaboração,
Fiz um fomulário HTML para inserir dados em um banco de dados mysql, através de um arquivo PHP,
com o objetivo de inserir o valor1 e o valor2 em duas colunas da tabela do banco de dados e em 7 linhas
ao mesmo tempo, conforme a ordem do formulário html, já criei a tabela do banco de dados, mas estou com dificuldade
de criar o código do if para o meu objetivo, da erro de sintase no if não estou conseguindo acertar a lógica para declarar
o valor1 e valor2, e a lógica da contagem e repetição até que seja alcançado o objetivo de inserir os valores das duas
colunas e as sete linhas???
Também estou em dúvida se preciso a variavel nome? e se a query está correta para atingir o meu objetivo???
arquivo con.php
Código do Form:
OBS: não inclui o css
Fiz um fomulário HTML para inserir dados em um banco de dados mysql, através de um arquivo PHP,
com o objetivo de inserir o valor1 e o valor2 em duas colunas da tabela do banco de dados e em 7 linhas
ao mesmo tempo, conforme a ordem do formulário html, já criei a tabela do banco de dados, mas estou com dificuldade
de criar o código do if para o meu objetivo, da erro de sintase no if não estou conseguindo acertar a lógica para declarar
o valor1 e valor2, e a lógica da contagem e repetição até que seja alcançado o objetivo de inserir os valores das duas
colunas e as sete linhas???
Também estou em dúvida se preciso a variavel nome? e se a query está correta para atingir o meu objetivo???
arquivo con.php
<?php $connect = mysql_connect("......mysql.uhserver.com", "user", "root") or die ("Sem conexão com o servidor"); $select = mysql_select_db("bd",$connect) or die("Sem acesso ao DB, Entre em contato com o Administrador"); $result = mysql_query("SELECT * FROM `table`"); $valor1=$_POST['valor1']; $valor2=$_POST['valor2']; $nome=$_POST["nome"]; \\\\ estou em dúvida se preciso desta variável???// if(($valor1)($valor2) <> "") { \\\\Neste bloco if dá erro de síntese // $cont = count($valor1,$valor2); for($i=0; $i<$cont; $i++){ if($valor1,$valor2[$i] == "") continue; $sql=mysql_query("INSERT INTO table (nome,valor1,valor2) VALUES ('$nome[$i]''$valor1[$i]','$valor2[$i]')"); } } { echo "Resultado atualizado com sucesso!"; } echo "Não foi possível Alterar o resultado, tente novamente."; // Exibe dados sobre o erro: echo "Dados sobre o erro:" . mysql_error(); ?>
Código do Form:
<div id="formtabresulum"> <form method="post" action="con.php" id="formtable" name="formtable" > <input type="hidden" name="valor[]"> <div class="col-md-2 col-sm-4 col-xs-6"> <div class="panel quadro-jogo"> <div class="panel-heading text-center"> </div> <table class="tableum"> <caption>Titulo</caption> <thead> <tr> <th class="col-md-3">Coluna 1</th> <th class="col-md-12">Coluna 2</th> <th class="col-md-5 text-center">Coluna 3</th> </tr> </thead> <tbody> <tr> <td> <span class="pull-left"><strong>1°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado1" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo1" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>2°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado2" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo2" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>3°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado3" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo3" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>4°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado4" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo4" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>5°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado5" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo5" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>6°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado6" size="7"></span> </td> <td class="text-center"><span><input type="text" name="valor2[]" value="grupo6" size="5"></span></td> </tr> <tr> <td> <span class="pull-left"><strong>7°</strong></span> </td> <td class="text-center"> <span><input type="text" name="valor1[]" value="resultado7" size="7"></span> </td> <td> <input type="submit" name="submit" value="ALTERAR" class="pull-left"></td> </tr> </tbody> </table> </div> </div> </div> </form>
OBS: não inclui o css
Lucy Weber
Curtidas 0
Respostas
Wilson Neto
22/12/2016
Bom dia, Lucy, tudo bem?
Sobre a variável $nome, você utiliza ele no INSERT, se a sua regra não permite que o campo 'Nome' seja NULL então você vai precisar dela sim. E no form que você postou, você não passa o nome então vale a pena fazer um tratamento com o isset() por exemplo.
Algo assim:
ou mesmo com o empty()
Sobre o IF, a sintaxe correta é a seguinte:
Utilizando o seu raciocinio ficaria:
Ou poderia fazer também
Vale a pena dar uma conferida na documentação sobre a sintaxe do Controle de estruturas
[url:descricao=Empty()]http://php.net/manual/pt_BR/function.empty.php[/url]
[url:descricao=Isset()]http://php.net/manual/pt_BR/function.isset.php[/url]
Sobre a verificação do count() vale a pena dar uma verificada na documentação também [url:descricao=Count()]http://php.net/manual/en/function.count.php[/url]
Nesse form você teria um erro de offset, pois o 7 resultado, não tem um grupo, se fosse seguir utilizando o indice do for você teria que fazer esse tratamento, logo você poderia comparar a quantidade de campo dos dois valores, caso fossem diferentes nem fariam a inserção - ou simplesmente tratar a existencia do indice dentro do looping com o isset() ou empty().
Você poderia usar também o foreach e ficaria assim:
Dessa forma você não precisaria fazer um Count(), já que ele percorre o array.
Vale a pena a dar uma lida na documentação sobre o Foreach
E sobre o mysql_, foi depreciado a partir da versão 5.5 do PHP, talvez seja interessante usar o MySQLi ou PDO (só para informação. :) )
Espero que tenha ajudado.
Sobre a variável $nome, você utiliza ele no INSERT, se a sua regra não permite que o campo 'Nome' seja NULL então você vai precisar dela sim. E no form que você postou, você não passa o nome então vale a pena fazer um tratamento com o isset() por exemplo.
Algo assim:
if(isset($_POST['nome']))
ou mesmo com o empty()
if(!empty($_POST['nome'])
Sobre o IF, a sintaxe correta é a seguinte:
if(condicao) //acao
Utilizando o seu raciocinio ficaria:
//$valor e $valor2 devem ser diferentes de "" (considerando o tipo) if($valor !== "" && $valor2 !== "") //codigo
Ou poderia fazer também
if( !empty($valor) && !empty($valor2)) //codigo
Vale a pena dar uma conferida na documentação sobre a sintaxe do Controle de estruturas
[url:descricao=Empty()]http://php.net/manual/pt_BR/function.empty.php[/url]
[url:descricao=Isset()]http://php.net/manual/pt_BR/function.isset.php[/url]
Sobre a verificação do count() vale a pena dar uma verificada na documentação também [url:descricao=Count()]http://php.net/manual/en/function.count.php[/url]
Nesse form você teria um erro de offset, pois o 7 resultado, não tem um grupo, se fosse seguir utilizando o indice do for você teria que fazer esse tratamento, logo você poderia comparar a quantidade de campo dos dois valores, caso fossem diferentes nem fariam a inserção - ou simplesmente tratar a existencia do indice dentro do looping com o isset() ou empty().
Você poderia usar também o foreach e ficaria assim:
foreach ($valor1 AS $index => $valor): //Verifico se esse indice existe para evitar erro de offeset if(!empty($valor2[$index])) echo $valor. ' - '. $valor2[$index]; endforeach;
Dessa forma você não precisaria fazer um Count(), já que ele percorre o array.
Vale a pena a dar uma lida na documentação sobre o Foreach
E sobre o mysql_, foi depreciado a partir da versão 5.5 do PHP, talvez seja interessante usar o MySQLi ou PDO (só para informação. :) )
Espero que tenha ajudado.
GOSTEI 0
Wilson Neto
22/12/2016
E no INSERT falta uma virgula após o $nome[$i].
:D
INSERT INTO table (nome,valor1,valor2) VALUES ('$nome[$i]''$valor1[$i]','$valor2[$i]')
INSERT INTO table (nome,valor1,valor2) VALUES ('$nome[$i]','$valor1[$i]','$valor2[$i]')
:D
GOSTEI 0