Inserir dados no Mysql com PHP utilizando fomulário html

HTML

PHP

Banco de Dados

22/12/2016

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
<?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

Lucy Weber

Curtidas 0

Respostas

Wilson Neto

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:

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

Wilson Neto

22/12/2016

E no INSERT falta uma virgula após o $nome[$i].

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
POSTAR