Error saving form data in php

Asked

Viewed 364 times

0

I’m having trouble passing data from an html form to be processed into a. php file No error message.`

<html>
<head>
    <title>Cadastro</title>
</head>
<body>
    <form method="POST" action="cadastro_aluno_exe.php">
        <table>
            <tr>
                <td>Matrícula</td>
                <td><input name="matricula" type="text" size="50" maxlenght="50"></td>
            </tr>
            <tr>
                <td>Nome</td>
                <td><input name="nome" type="text" size="50" maxlenght="50"></td>
            </tr>
            <tr>
                <td>Data de Nascimento</td>
                <td><input name="data_nascimento" type="text" size="20" ></td>
            </tr>
            <tr>
                <td>Nacionalidade do Aluno</td>
                <td><input name="nacionalidade" type="radio" value="brasileira">Brasileira
                    <input name="nacionalidade" type="radio" value="brasileira_nascida_no_exterior">Brasileira Nascida no Exterior
                    <input name="nacionalidade" type="radio" value="naturalizado">Naturalizado
                    <input name="nacionalidade" type="radio" value="estrangeira">Estrangeira
                </td>
            </tr>
            <tr>
                <td>UF de Nascimento</td>
                <td><select name="estado">
                        <option value="#">&nbsp</option>
                        <option value="MT">MT</option>
                        <option value="MS">MS</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Estado Civil</td>
                <td><select name="estado_civil">
                        <option value="#">&nbsp</option>
                        <option value="solteiro">Solteiro</option>
                        <option value="casado">Casado</option>
                        <option value="outros">Outros</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Profissão</td>
                <td><select name="profissao">
                        <option value="#">&nbsp</option>
                        <option value="nenhuma">Nenhuma</option>
                        <option value="outros">Outros</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Religião</td>
                <td><select name="religiao">
                        <option value="#">&nbsp</option>
                        <option value="catolica">Católica</option>
                        <option value="nenhuma">Nenhuma</option>
                        <option value="outros">Outros</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Recebe escolarização<br/>em outro espaço</td>
                <td>
                    <select name="rec_esc_outro_espaco">
                        <option value="#">&nbsp</option>
                        <option value="sim">Sim</option>
                        <option value="nao">Não</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Aluno com deficiência, transtorno global do<br/>desenvolvimento ou altas habilidades/Superdotação</td>
                <td><input name="deficiencia" type="radio" value="sim">Sim
                    <input name="deficiencia" type="radio" value="nao">Não
                </td>
            </tr>
            <tr>
                <td>Recomendações Médicas</td>
                <td><textarea name="rec_medicas" rows="10" cols="40"></textarea></td>
            </tr>
            <tr>
                <td colspan=2 align="center"><input type="submit" name="Submit" value="Cadastrar"></td>
            </tr>
        </table>
    </form>
</body>

<?php
include('connection.php');

$matricula = isset($_POST["matricula"]) ? $_POST['matricula'] : "[não informado]" ;
$nome = isset($_POST["nome"]);
$data_nascimento = isset($_POST["data_nascimento"]);
$nacionalidade = isset($_POST["nacionalidade"]);
$estado = isset($_POST["estado"]);
$estado_civil = isset($_POST["estado_civil"]);
$profissao = isset($_POST["profissao"]);
$religiao = isset($_POST["religiao"]);
$rec_esc_outro_espaco = isset($_POST["rec_esc_outro_espaco"]);
$deficiencia = isset($_POST["deficiencia"]);
$rec_medicas = isset($_POST["rec_medicas"]);

$sql = "INSERT INTO dados_pessoais (matricula,nome,data_nascimento,
        nacionalidade,estado,estado_civil,profissao,religiao,rec_esc_outro_espaco,deficiencia
        rec_medicas) VALUES ('$matricula,'$nome','$data_nascimento',
                '$nacionalidade','$estado','$estado_civil','$profissao','$religiao',
                        '$rec_esc_outro_espaco','$deficiencia',
                                '$rec_medicas')";

$result = mysql_query($sql);
if($result)
    echo "Aluno cadastrado com sucesso!";
else 
    echo "Erro ao cadastrar aluno";

?>
Come back

<?php
$server = "127.0.0.1:3306";
$database = "sistema_escolar";
$username = "root";
$password = "";

$con = mysql_connect($server,$username,$password);
if(!$con)
{
    die('Não foi possível conectar ao servidor: '.mysql_error());
}
/* echo 'Conectado com servidor'; */ 

echo "<br/>";

$db = mysql_select_db($database,$con);
if(!$db)
{
    die('Erro ao conectar com o banco de dados: '.mysql_error());
}
/* echo 'Conectado com o banco de dados'; */

?>

  • Renan, please also enter the page code .php

4 answers

1

At the beginning of your php file you are trying to start an operation with operador ternário but it is badly formatted;

$matricula = isset($_POST["matricula"]) ? $_POST['matricula'] : "[não informado]" ;

This ternary operation is checking whether the variable $matricula has the same value as $_POST['matricula'] but you have not stored anything in the variable before, soon it will return false.

you can simplify this by doing;

if (isset($_POST['matricula']):
$matricula = $_POST['matricula'];
else:
$matricula = 'não informado';
endif;

0

To know the error returned from the database use the function mysql_error(), by sql seems to be a syntax error, missing a comma(,) in the call of the penultimate field.

INSERT INTO ... deficiencia rec_medicas)
virgula aqui --------------^

To catch error from a query:

$result = mysql_query($sql) or die(mysql_error());

0

Your query is wrong. You cannot just pass the variables as if they were parameters, so instead of doing this:

$sql = "INSERT INTO dados_pessoais (matricula,nome,data_nascimento,      nacionalidade,estado,estado_civil,profissao,religiao,rec_esc_outro_espaco,deficiencia, rec_medicas) VALUES '$matricula,'$nome','$data_nascimento',               '$nacionalidade','$estado','$estado_civil','$profissao','$religiao',
'$rec_esc_outro_espaco','$deficiencia',
'$rec_medicas')";

Do it:

$sql = "INSERT INTO dados_pessoais (matricula,nome,data_nascimento,        nacionalidade,estado,estado_civil,profissao,religiao,rec_esc_outro_espaco,deficiencia, rec_medicas) 
VALUES (' . $matricula . ',' . $nome . ',' . $data_nascimento .','. $nacionalidade . ',' . $estado . ',' . $estado_civil . ',' . $profissao . ',' . $religiao . ','. $rec_esc_outro_espaco . ',' . $deficiencia . ','$rec_medicas . ')";

Prefer to use parameters in Queryes and filters when taking data from $_POST arrays, as cited here.

0

Thanks guys, besides missing "," before rec_medicas, I followed the steps of using parameters in querys. The corrected code:

<?php
include('connection.php');

$matricula = isset($_POST["matricula"]);
$nome = isset($_POST["nome"]);
$data_nascimento = isset($_POST["data_nascimento"]);
$nacionalidade = isset($_POST["nacionalidade"]);
$estado = isset($_POST["estado"]);
$estado_civil = isset($_POST["estado_civil"]);
$profissao = isset($_POST["profissao"]);
$religiao = isset($_POST["religiao"]);
$rec_esc_outro_espaco = isset($_POST["rec_esc_outro_espaco"]);
$deficiencia = isset($_POST["deficiencia"]);
$rec_medicas = isset($_POST["rec_medicas"]);

$sql = "INSERT INTO dados_pessoais (matricula,nome,data_nascimento,
        nacionalidade,estado,estado_civil,profissao,religiao,rec_esc_outro_espaco,deficiencia,
        rec_medicas) VALUES ('.$matricula.','.$nome.','.$data_nascimento.',
                '.$nacionalidade.','.$estado.','.$estado_civil.','.$profissao.','.$religiao.',
                        '.$rec_esc_outro_espaco.','.$deficiencia.',
                                '.$rec_medicas.')";

$result = mysql_query($sql) or die (mysql_error());
if($result)
    echo "Aluno cadastrado com sucesso!";
else 
    echo "Erro ao cadastrar aluno";

?>
Come back

Browser other questions tagged

You are not signed in. Login or sign up in order to post.