Que tal colegas
les cuento que desarrollo un porgrama para editar las noticias que me estan enviando, pero en ves de actualizar los registros, me crea uno nuevo, aqui va el codigo, es un poco largo pero se "entiende"
Código PHP:
<body>
<?
if($_POST['Submit'] != "Enviar")
{
?>
<?
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
$usuario_consulta = mysql_query("SELECT N.noticia_texto,N.noticia_titulo,N.noticia_id,N.noticia_mostrar, N.noticia_nivel,L.id_nivel,L.nivel_nombre FROM noticias AS N, niveles as L WHERE N.noticia_id = $_GET[id] AND N.noticia_nivel = L.id_nivel") or die(header ("Location: $redir?error_login=1"));
if (mysql_num_rows($usuario_consulta) == 0)
{
die("Noticia no encontrada");
exit;
}
$usuario_datos = mysql_fetch_array($usuario_consulta);
mysql_free_result($usuario_consulta);
mysql_close($db_conexion);
?>
<form name="add_news" method="post" action="add_news.php">
<table width="100%" border="1" cellpadding="0" cellspacing="0" bordercolor="#000000">
<tr bgcolor="#000000">
<th colspan="2" scope="col"><div align="left" class="Estilo1 Estilo1">Modificar noticia </div></th>
</tr>
<tr>
<th scope="row"><div align="left" >Titulo </div></th>
<th scope="row">
<div align="left">
<input name="titulo_noticia" type="text" id="titulo_noticia2" value="<? echo $usuario_datos['noticia_titulo']; ?>">
</div></th>
</tr>
<tr>
<th scope="row"><div align="left" >Texto de la noticia </div></th>
<th scope="row"><div align="left">
<textarea name="texto_noticia" cols="50" rows="20" id="texto_noticia"><? echo $usuario_datos['noticia_texto']; ?>
</textarea>
</div></th>
</tr>
<tr>
<th scope="row"><div align="left">Nivel (quien la podrá ver) </div></th>
<th scope="row"><div align="left">
<select name="nivel_news" id="nivel_news">
<?php
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
$query = mysql_query("SELECT L.id_nivel,L.nivel_nombre FROM niveles AS L");
while($row=mysql_fetch_array($query)){
$id= $row[id_nivel];
$nivel_nombre= $row[nivel_nombre];
?>
<option value="<?php echo $id ?>"><?php echo $nivel_nombre ?></option>
<?php }
mysql_free_result($query);
mysql_close($db_conexion);
?>
</select>
Actual: <? echo $usuario_datos['nivel_nombre']; ?></div></th>
</tr>
<tr>
<th scope="row"><div align="left" >Mostrar</div></th>
<th scope="row"><div align="left">
<select name="mostrar" id="select">
<option value="1">Si</option>
<option value="0">No</option>
</select>
Actual: <? if($usuario_datos['noticia_mostrar'] == 0)
{
printf("NO");
}else{
printf("SI");
}
?></div></th>
</tr>
</table>
<input name="id" type="hidden" value="<? echo $_GET[id]; ?>">
<input name="Submit" type="submit" value="Enviar"></form>
<?
}else{
$usuario = $_SESSION['usuario_id'];
$texto_noticia = $_POST['texto_noticia'];
$titulo_noticia = $_POST['titulo_noticia'];
$nivel = $_POST[nivel_news];
$mostrar = $_POST[mostrar];
$id = $_POST[id];
if(empty($texto_noticia) || empty($titulo_noticia))
{
die("Debe rellenar todos los campos");
exit;
}else {
$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
//$query = "INSERT INTO noticias ( `noticia_id` , `noticia_usuario` , `noticia_texto` , `noticia_fecha` , `noticia_titulo` , `noticia_nivel` , `noticia_mostrar` ) VALUES ('', $usuario, '$texto_noticia', NOW( ) , '$titulo_noticia', $nivel, $mostrar)";
$sql = "UPDATE noticias SET noticia_texto = '$texto_noticia', noticia_titulo = '$titulo_noticia', noticia_nivel = '$nivel', `noticia_mostrar` = '$mostrar' WHERE noticia_id = $id LIMIT 1";
if(@!mysql_query($sql))
{
die("Error guardando datos");
exit;
}else{
printf("Noticia modificada");
/* if($mostrar == 0)
{
printf("<br><b>La noticia fue modificada.</b>");
}*/
}
mysql_close($db_conexion);
}
}
?>
Probablemente aqui esta el error, pero si copio el query en phpmyadmin funciona bien... las variableas tambien las pasa bien.. que sera?
Código PHP:
db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location: $redir?error_login=0"));
mysql_select_db("$sql_db");
//$query = "INSERT INTO noticias ( `noticia_id` , `noticia_usuario` , `noticia_texto` , `noticia_fecha` , `noticia_titulo` , `noticia_nivel` , `noticia_mostrar` ) VALUES ('', $usuario, '$texto_noticia', NOW( ) , '$titulo_noticia', $nivel, $mostrar)";
$sql = "UPDATE noticias SET noticia_texto = '$texto_noticia', noticia_titulo = '$titulo_noticia', noticia_nivel = '$nivel', `noticia_mostrar` = '$mostrar' WHERE noticia_id = $id LIMIT 1";
if(@!mysql_query($sql))
{
Agradeceria me dijiesen en que choco.
Saludos