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

(Resolvido) editando Checkbox em um campo Enum


Magic Angel

Pergunta

Gente.. estou com um formulário de opções em checkbox, para cada checkbox existe um campo enum com os valores 'S' e 'N' numa tabela do MySql.

Quero verificar cada checkbox em separado para atribuir um 'S' se ele foi selecionado, ou um 'N' se ele não foi.

Precisarei desses dados no futuro, por isso não construi nenhum array. Quero cada checkbox em um campo único mesmo.

Bom, abaixo segue os dois arquivos.. o primeiro com o formulário. O segundo com o isset que verifica quais estão selecionados e grava o resultado no MySql.

O detalhe é que a gravação parte de um objeto já criado.. ou seja, é como se estivesse editando os valores desses campos de checkbox.

<?
require("_loga.php");
?>

<?

    include "_bd.php"; //banco de dados
    $id=$_GET['id'];

    $sql1="SELECT * FROM login WHERE id='$id'";
    $resultado1=mysql_query($sql1)
    or die ("Erro");

    while ($linha1=mysql_fetch_array($resultado1))
    {
        $sql2="SELECT * FROM estatisticas WHERE id='$id'";
        $resultado2=mysql_query($sql2)
        or die ("Erro");

        while ($linha=mysql_fetch_array($resultado2))
        {

echo <<<EOT

<!DOCTYPE HTML SYSTEM>
<html>

<head>

<title>::: Estatísticas :::</title>

<style type="text/css">
@import url("_estilo.css");
</style>

</head>


<body background="/imagens/fundo.jpg">

<table width='800' border='0' cellpadding='0' cellspacing='0' align='center'>

  <tr>
    <td valign='top'>
      <div align='center'>

        <br><br>
        <h1>:: Estatísticas 2008 ::</h1>
        <font size="4"><i>{$linha['nome1']}</i></font>
        <br><br>
        <br><br>

            <label for="supertitulo" class="supertitulo"><font size="7">B</font>EM VINDO<font 

size="7">!</font></label>

                    <br><br>

            <div align='left'>
            Introdução
            </div>

            <br><br>

        <form name="alterar" method="post" action="estatisticas1b.php?id={$linha['id']}">


            <label for="titulo" class="titulo">:: Níveis Escolares Fornecidos pela Instituição:</label>

            <p>
            <input name="ed_inf" value="ed_inf" class="mini" type="checkbox"><label class="checkbox">Educação 

Infantil</label>
            </p>

            <p>
            <input name="ens_fun1" value="ens_fun1" class="mini" type="checkbox"><label class="checkbox">Ensino 

Fundamental - 1ª a 4ª série</label>
            </p>

            <p>
            <input name="ens_fun2" value="ens_fun2" class="mini" type="checkbox"><label class="checkbox">Ensino 

Fundamental - 5ª a 8ª série</label>
            </p>

            <p>
            <input name="ens_med" value="ens_med" class="mini" type="checkbox"><label class="checkbox">Ensino 

Médio</label>
            </p>

            <p>
            <input name="ed_jov_ad" value="ed_jov_ad" class="mini" type="checkbox"><label class="checkbox">Educação 

para Jovens e Adultos</label>
            </p>

            <p>
            <input name="ens_tec" value="ens_tec" class="mini" type="checkbox"><label class="checkbox">Ensino 

Técnico</label>
            </p>

            <p>
            <input name="ens_sup" value="ens_sup" class="mini" type="checkbox"><label class="checkbox">Ensino 

Superior</label>
            </p>

            <p>
            <input name="outro" value="outro" class="mini" type="checkbox"><label class="checkbox">Outro (especificar 

na planilha)</label>
            </p>

                    <input type='submit' value='Iniciar ->'>

        </form>

            <br><br><br><br>

EOT;

        }
    }

?>

      </div>
    </td>
  </tr>

</table>

</body>

</html>
<?php
require("_loga.php");
?>

<?php
    $id=$_GET['id'];


    include "_bd.php"; //banco de dados


    $ed_inf = (isset($_POST["ed_inf"]))?'S':'N';
    $ens_fun1 = (isset($_POST["ens_fun1"]))?'S':'N';
    $ens_fun2 = (isset($_POST["ens_fun2"]))?'S':'N';
    $ens_med = (isset($_POST["ens_med"]))?'S':'N';
    $ed_jov_ad = (isset($_POST["ed_jov_ad"]))?'S':'N';
    $ens_tec = (isset($_POST["ens_tec"]))?'S':'N';
    $ens_sup = (isset($_POST["ens_sup"]))?'S':'N';
    $outro = (isset($_POST["outro"]))?'S':'N';

    $sql = "UPDATE estatisticas SET

    attdata=NOW(),

    ed_inf=$ed_inf,

    ens_fun1=$ens_fun1,

    ens_fun2=$ens_fun2,

    ens_med=$ens_med,

    ed_jov_ad=$ed_jov_ad,

    ens_tec=$ens_tec,

    ens_sup=$ens_sup,

    outro=$outro

    WHERE id='$id'";

    mysql_query($sql);

?>

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

6 respostass a esta questão

Posts Recomendados

  • 0

"Unknown column 'S' in 'field list'"

u.u a pessoa sofre, viu ç.ç

abaixo a relação da tabela.. demais dados omitidos, porque não são relevantes e porque são muito's o_o

CREATE TABLE `estatisticas` (
  `id` int(4) NOT NULL auto_increment,
  `attdata` date NOT NULL,
  `ed_inf` enum('S','N') NOT NULL default 'N',
  `ens_fun1` enum('S','N') NOT NULL default 'N',
  `ens_fun2` enum('S','N') NOT NULL default 'N',
  `ens_med` enum('S','N') NOT NULL default 'N',
  `ed_jov_ad` enum('S','N') NOT NULL default 'N',
  `ens_tec` enum('S','N') NOT NULL default 'N',
  `ens_sup` enum('S','N') NOT NULL default 'N',
  `outro` enum('S','N') NOT NULL default 'N',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;

Link para o comentário
Compartilhar em outros sites

  • 0

Experimente colocar as variáveis entre apóstrofes, pois ele está dizendo que existe uma coluna "S" desconhecida na lista...

Ou seja, em vez de.

ed_inf=$ed_inf,

    ens_fun1=$ens_fu
...
use
ed_inf='$ed_inf',

    ens_fun1='$ens_fu'
...

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