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

Cadastro Na Tabela Em Checkbox


PauloRJ

Pergunta

;) Fala Pessoal, estou encontrando um erro em meu form de checkbox.

Eu estou tentando fazer um form de seleção de estilo de musica no caso o usuario escolha os seus preferidos.

Eu ate consigo selecionar os desejado mas a página da esta mensagem de erro quando não são selecionados todos os campos:

Notice: Undefined index: axe in d:\web\musica4.php on line 36

Notice: Undefined index: forro in d:\web\musica4.php on line 37

Notice: Undefined index: trance in d:\web\musica4.php on line 39

Notice: Undefined index: hiphop in d:\web\musica4.php on line 41

Warning: Cannot modify header information - headers already sent by (output started at d:\web\musica4.php:36) in d:\web\musica4.php on line 51

Justamente os checkbox que estão desmarcados.

Queri saber como ter a opção dele ignorar os que não foram marcados e não exibir este erro.

Codigo da tabela:

-- Estrutura da tabela `musica`

--

CREATE TABLE `musica` (

`funk` text,

`axe` text,

`forro` text,

`mpb` text,

`trance` text,

`sertanejo` text,

`hiphop` text

) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--

-- Extraindo dados da tabela `musica`

--

INSERT INTO `musica` VALUES ('funk', 'axe', 'forró', 'mpb', 'trance', 'sertanejo', 'hiphop');

INSERT INTO `musica` VALUES ('funk', NULL, NULL, NULL, NULL, NULL, 'hiphop');

INSERT INTO `musica` VALUES ('funk', NULL, NULL, 'mpb', NULL, 'sertanejo', NULL);

Codigo da página musica4.php

<?php require_once('Connections/con_musica.php'); ?>

<?php

function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")

{

$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {

case "text":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "long":

case "int":

$theValue = ($theValue != "") ? intval($theValue) : "NULL";

break;

case "double":

$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";

break;

case "date":

$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";

break;

case "defined":

$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;

break;

}

return $theValue;

}

$editFormAction = $_SERVER['PHP_SELF'];

if (isset($_SERVER['QUERY_STRING'])) {

$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);

}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

$insertSQL = sprintf("INSERT INTO musica (funk, axe, forro, mpb, trance, sertanejo, hiphop) VALUES (%s, %s, %s, %s, %s, %s, %s)",

GetSQLValueString($_POST['funk'], "text"),

GetSQLValueString($_POST['axe'], "text"),

GetSQLValueString($_POST['forro'], "text"),

GetSQLValueString($_POST['mpb'], "text"),

GetSQLValueString($_POST['trance'], "text"),

GetSQLValueString($_POST['sertanejo'], "text"),

GetSQLValueString($_POST['hiphop'], "text"));

mysql_select_db($database_con_exibidos, $con_exibidos);

$Result1 = mysql_query($insertSQL, $con_exibidos) or die(mysql_error());

$insertGoTo = "lado.htm";

if (isset($_SERVER['QUERY_STRING'])) {

$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";

$insertGoTo .= $_SERVER['QUERY_STRING'];

}

header(sprintf("Location: %s", $insertGoTo));

}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

</head>

<body>

<form method="post" name="form1" action="<?php echo $editFormAction; ?>">

<table align="center">

<tr valign="baseline">

<td nowrap align="right">Funk:</td>

<td><input type="checkbox" name="funk" value="funk" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Axe:</td>

<td><input type="checkbox" name="axe" value="axe" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Forro:</td>

<td><input type="checkbox" name="forro" value="forró" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Mpb:</td>

<td><input type="checkbox" name="mpb" value="mpb" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Trance:</td>

<td><input type="checkbox" name="trance" value="trance" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Sertanejo:</td>

<td><input type="checkbox" name="sertanejo" value="sertanejo" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">Hiphop:</td>

<td><input type="checkbox" name="hiphop" value="hiphop" size="32"></td>

</tr>

<tr valign="baseline">

<td nowrap align="right">&nbsp;</td>

<td><input type="submit" value="Insert record"></td>

</tr>

</table>

<input type="hidden" name="MM_insert" value="form1">

</form>

<p>&nbsp;</p>

</body>

</html>

Quem puder dar essa força. fico grato!!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Yo,

Notice: Undefined index: axe in d:\web\musica4.php on line 36

Notice: Undefined index: forro in d:\web\musica4.php on line 37

Notice: Undefined index: trance in d:\web\musica4.php on line 39

Notice: Undefined index: hiphop in d:\web\musica4.php on line 41

Warning: Cannot modify header information - headers already sent by (output started at d:\web\musica4.php:36) in d:\web\musica4.php on line 51
Esse último warning, relaxa.. como ele deu erro por que imprimiu os notices na página, ele sempre vai dar erro no warning.. você não pode imprimir nada antes dele.. é algo como sessões.. ;) Agora os outros erros.. você criou a tabela com os campos em formato texto.. acho que não precisa, a única coisa que você precisa é guardar se ele gosta ou não... (S/N), então um varchar(1) resolve isso.. e tem outro detalhe, sua tabela não possui um índice.. como vai organizar os registros.. outro detalhe importante é que ela não guarda o índice do usuário.. você vai escrever as coisas nela e vai largar lá.. que registro vai ser de quem? como você vai saber? =) então você vai precisar destes dois campos.. smallint(6) já deve resolver, não sei como esta criando seus índices.. Os erros estão aqui:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO musica (funk, axe, forro, mpb, trance, sertanejo, hiphop) VALUES (%s, %s, %s, %s, %s, %s, %s)",
GetSQLValueString($_POST['funk'], "text"),
GetSQLValueString($_POST['axe'], "text"),
GetSQLValueString($_POST['forro'], "text"),
GetSQLValueString($_POST['mpb'], "text"),
GetSQLValueString($_POST['trance'], "text"),
GetSQLValueString($_POST['sertanejo'], "text"),
GetSQLValueString($_POST['hiphop'], "text"));
Isso dai vai dar problema sim.. tem que dar uma alterada nisso. Que tal deixar assim?
( $_POST['funk'] == 'on' )      ? $funk = 'S'      : $funk = 'N';
( $_POST['axe'] == 'on' )       ? $axe = 'S'       : $axe = 'N';
( $_POST['forro'] == 'on' )     ? $forro = 'S'     : $forro = 'N';
( $_POST['mpb'] == 'on' )       ? $mpb = 'S'       : $mpb = 'N';
( $_POST['trance'] == 'on' )    ? $trance = 'S'    : $trance = 'N';
( $_POST['sertanejo'] == 'on' ) ? $sertanejo = 'S' : $sertanejo = 'N';
( $_POST['hiphop'] == 'on' )    ? $hiphop = 'S'    : $hiphop = 'N';
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO musica (funk, axe, forro, mpb, trance, sertanejo, hiphop) VALUES (%s, %s, %s, %s, %s, %s, %s)",
$funk, $axe, $forro, $mpb, $trance, $sertanejo, $hiphop;

Acho que isso já te ajudaria, testa aí e me fala depois..

Até,

D.Soul

Link para o comentário
Compartilhar em outros sites

  • 0

Fala D.Soul

Na verdade eu fiz um cadastro de:

Nome:

Cidade:

E-mail:

Nascimento:

Bairro:

Cidade:

Estado:

Senha:

+ Outros detalhes que consigo adicionar em bando de dados.

Mas aí na parte de Qual estilo de musica tive esse problema no check box.

E teria + adiante também em qual assuntos gostaria é de seu interesse e outrs que eu poderia vir trabalhar com checkbox ou meno suspenso.

Então...

Tentei fazer com o codigo que você me enviou de cara não funcionou + vou tentar novamente ver com detalhes os possiveis erros.

Se puder me ajudar dando o codigo create da tabela em sql e o codigo da pagina de cadastro.php ajuda. aí do seu modelo eu em futuras alterações fica facil. Abraço!

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...