How do I save an array on separate lines in DB [duplicate]

0

How can I send a textarea containing multiple names, one per line, so that each row is a record in the database? Also, each line receives the value sent by school and class, I'm trying to do this, but only one record and in the field nome Is getting blank in DB, I'm using code below based on Pedro Augusto's answer. >

Follow form:

  <form action="post.php" method="POST" id="usrform">
  Cidade: <input type="text" name="cidade"><br>     
  Escola: <input type="text" name="siem-id"><br>
  Nivel: <input type="text" name="nivel"><br>
  Turma: <input type="text" name="turma"><br>

  <br>
  Digite um nome por linha</br>
  <textarea rows="4" cols="50" name="nome"></textarea>
  <input type="submit">
  </form>
  

I'm doing this:

    <?php 

 //RECEBE OS VALORES VIA POST
 $siem_id = $_POST["siem_id"];
 $cidade = $_POST["cidade"];
 $turma = $_POST["turma"];
 $nivel = $_POST["nivel"];
 $nome_post = $_POST["nome"];

 //QUEBRA A TEXTAREA POR "\n"
 $nome = explode("\n",$nome_post);

 //IMPRIMIR OS VALORES
 echo "Escola: ".$siem_id."<br>";
 echo "Cidade: ".$cidade."<br>";
 echo "Nivel: ".$nivel."<br>";
 echo "Turma: ".$turma."<br>";
 echo "Nome: <br>";
 for($i=0;$i<count($nome);$i++){
     $linha = $nome[$i];
     echo $linha."<br>";

    }

//conectando com o localhost - mysql
$conexao = mysql_connect("localhost","root");
if (!$conexao)
    die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
//conectando com a tabela do banco de dados
$banco = mysql_select_db("simrede",$conexao);
if (!$banco)
    die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());

//insere os dados
$query = "INSERT INTO 'alunos' ('siem_id', 'cidade', 'nivel', 'turma',  'nome') 
VALUES ('$siem_id','$cidade', '$nivel', '$turma', '$linha')";

mysql_query($query,$conexao);

echo " <b>Cadastrados Com Sucesso!</b> "; 
  

Even prints the correct values on the screen, but in the database the nome field is going blank

    
asked by anonymous 08.08.2018 / 16:06

1 answer

2

First let's fix your form:

<form action="/action_page.php" method="POST" id="usrform">
  Escola: <input type="text" name="escola">
  Turma: <input type="text" name="turma">
  <br>
  Digite um nome por linha
  <textarea rows="4" cols="50" name="nomes"></textarea>
  <input type="submit">
</form>

Now the file that will receive POST :

    <?php 

//conectando com o localhost - mysql
    $conexao = mysql_connect("localhost","root");
    if (!$conexao)
        die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error());
    //conectando com a tabela do banco de dados
    $banco = mysql_select_db("simrede",$conexao);
    if (!$banco)
        die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error());


     //RECEBE OS VALORES VIA POST
     $siem_id = $_POST["siem_id"];
     $cidade = $_POST["cidade"];
     $turma = $_POST["turma"];
     $nivel = $_POST["nivel"];
     $nome_post = $_POST["nome"];

     //QUEBRA A TEXTAREA POR "\n"
     $nome = explode("\n",$nome_post);

     //IMPRIMIR OS VALORES
     echo "Escola: ".$siem_id."<br>";
     echo "Cidade: ".$cidade."<br>";
     echo "Nivel: ".$nivel."<br>";
     echo "Turma: ".$turma."<br>";
     echo "Nome: <br>";
     for($i=0;$i<count($nome);$i++){
         $linha = $nome[$i];
         echo $linha."<br>";
         //insere os dados
         $query = "INSERT INTO 'alunos' ('siem_id', 'cidade', 'nivel', 'turma',  'nome') VALUES ('$siem_id','$cidade', '$nivel', '$turma', '$linha')";
         mysql_query($query,$conexao);
        }

     echo " <b>Cadastrados Com Sucesso!</b> "; 
    
08.08.2018 / 16:22