Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gilmargpc

mysql

Recommended Posts

Bom pessoal, to fazendo o curso dw, php e msql do Leandro Vieira, da imasters, mas não to conseguindo completar uma aula, qndo crio a pagina para inserir as notícias, faço tudo como descrito no curso, mas na hora de inserir noticia aparece a mensagem "Column 'not_usuario_id' cannot be null" mas não to conseguindo identificar o erro, alguém poderia me dar uma força?

 

<?php require_once('../Connections/Conncurso.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($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 noticias (not_titulo, not_conteudo, not_data, not_status, not_fonte, not_usuario_id) VALUES (%s, %s, %s, %s, %s, %s)",
					   GetSQLValueString($_POST['not_titulo'], "text"),
					   GetSQLValueString($_POST['not_conteudo'], "text"),
					   GetSQLValueString($_POST['not_data'], "date"),
					   GetSQLValueString($_POST['not_status'], "text"),
					   GetSQLValueString($_POST['not_fonte'], "text"),
					   GetSQLValueString($_POST['not_usuario_id'], "text"));

  mysql_select_db($database_Conncurso, $Conncurso);
  $Result1 = mysql_query($insertSQL, $Conncurso) or die(mysql_error());

  $insertGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
	$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  $insertSQL = sprintf("INSERT INTO noticias (not_titulo, not_conteudo, not_data, not_status, not_fonte, not_usuario_id) VALUES (%s, %s, %s, %s, %s, %s)",
					   GetSQLValueString($_POST['not_titulo'], "text"),
					   GetSQLValueString($_POST['not_conteudo'], "text"),
					   GetSQLValueString($_POST['not_data'], "date"),
					   GetSQLValueString($_POST['not_status'], "text"),
					   GetSQLValueString($_POST['not_fonte'], "text"),
					   GetSQLValueString($_POST['not_usuario_id'], "text"));

  mysql_select_db($database_Conncurso, $Conncurso);
  $Result1 = mysql_query($insertSQL, $Conncurso) or die(mysql_error());

  $insertGoTo = "index.php";
  if (isset($_SERVER['QUERY_STRING'])) {
	$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
	$insertGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $insertGoTo));
}

$colname_rsUsuarioLogado = "-1";
if (isset($_SESSION['MM_username'])) {
  $colname_rsUsuarioLogado = $_SESSION['MM_username'];
}
mysql_select_db($database_Conncurso, $Conncurso);
$query_rsUsuarioLogado = sprintf("SELECT * FROM usuarios WHERE usu_email = %s", GetSQLValueString($colname_rsUsuarioLogado, "text"));
$rsUsuarioLogado = mysql_query($query_rsUsuarioLogado, $Conncurso) or die(mysql_error());
$row_rsUsuarioLogado = mysql_fetch_assoc($rsUsuarioLogado);
$totalRows_rsUsuarioLogado = mysql_num_rows($rsUsuarioLogado);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Projeto: Portal de Notícias [ Área Administrativa ]</title>
<style type="text/css" media="screen">
		<!--
			@import url(../css/style_portal_admin.css);
		-->
</style>
</head>
<body>
<!--
Aproveite este simples modelo, e aprenda um pouco sobre Tableless
-->
<div id="global">
	<div id="topo">
		<h1>Portal de Notícias [ Admin ]</h1>
	</div>
	<!-- / Head -->
	
	<div id="menu">
		<ul>
			<li><a href="index.php">Início do Admin</a></li>
			<li><a href="#">Log out</a></li>
			<li><a href="cadastro_usuario.php">Cadastrar usuário</a></li>
			<li><a href="noticia_inserir.php">Cadastrar notícias</a></li>
		</ul>
	</div>
	<!-- / Menu -->
	
	<div id="conteudo_admin">
	<h2>Cadastro das notícias</h2>
	<p> </p>
	<p align="center"> </p>
	
		<p> </p>
	
				<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1">
		  <table align="center">
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right">Not_titulo:</td>
			  <td><input type="text" name="not_titulo" size="32" /></td>
			</tr>
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right" valign="top">Not_conteudo:</td>
			  <td><textarea name="not_conteudo" cols="50" rows="5"></textarea>
			  </td>
			</tr>
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right">Not_data:</td>
			  <td><input type="text" name="not_data" value="<?php echo date('y/m/d'); ?>" size="32" /></td>
			</tr>
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right">Not_status:</td>
			  <td><select name="not_status">
				  <option value="on" <?php if (!(strcmp("on", ""))) {echo "SELECTED";} ?>>on</option>
				  <option value="off" <?php if (!(strcmp("off", ""))) {echo "SELECTED";} ?>>off</option>
				</select></td>
			</tr>
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right">Not_fonte:</td>
			  <td><input type="text" name="not_fonte" value="" size="32" /></td>
			</tr>
			<tr valign="baseline">
			  <td nowrap="nowrap" align="right"> </td>
			  <td><input name="Submit" type="submit" value="Insert record" /></td>
			</tr>
		  </table>
		  <input type="hidden" name="not_usuario_id" value="<?php echo $row_rsUsuarioLogado['usu_id']; ?>">
		  <input type="hidden" name="MM_insert" value="form1" />
		</form>
		<p> </p>
	  <p> </p>
	<p> </p>
  </div>
	<!-- / Conteudo Admin -->
		
	<div id="rodape">
		<h4>Rodapé</h4>
	</div>
	<!-- / Rodapé -->
	
</div>
<!-- / Global -->


</body>
</html>
<?php
mysql_free_result($rsUsuarioLogado);
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo esse erro Column 'not_usuario_id' cannot be null quer dizer que o campo not_usuario_id nao pode ser nulo

 

então você deve ir lá no seu banco de dados e colocá-lo como auto_increment pois dessa forma ele ser incerementado automaticamente de 1 em 1´

 

entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá amigo esse erro Column 'not_usuario_id' cannot be null quer dizer que o campo not_usuario_id nao pode ser nulo

 

então você deve ir lá no seu banco de dados e colocá-lo como auto_increment pois dessa forma ele ser incerementado automaticamente de 1 em 1´

 

entendeu?

consulta SQL:

 

ALTER TABLE `noticias` CHANGE `not_usuario_id` `not_usuario_id` CHAR( 2 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL AUTO_INCREMENT

 

Mensagens do MySQL :

 

#1063 - Incorrect column specifier for column 'not_usuario_id'

 

deu certo não, deu outro erro!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tb não deu certo amigo, resolvi colocando o not_usuario_id como null, deu certo, mas ao acrescentar uma noticia aparesceu ~2, e cadastrou 2 noticias iguais, como resolvo isto, e tem algum problema colocar esta coluna como null?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostrando registros 0 - 1 (~2 total, Consulta levou 0.0005 segundos)

Pode ser aproximado. Veja o FAQ 3.11

 

Bom, oq você me falou para fazer não deu certo, só deu certo qndo mudei o padrão de not_usuario_id para null, ai consegui cadastrar as noticias, mas como eu disse qndo cadastro uma noticia, no banco de dados aparescem 2 noticias iguais.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a forma correta de se criar uma coluna inteira, chave primaria, not null e auto_increment é essa:

id INT(3) NOT NULL AUTO_INCREMENT PRIMARY KEY

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.