Foros del Web » Programando para Internet » PHP »

Problema con UPDATE

Estas en el tema de Problema con UPDATE en el foro de PHP en Foros del Web. Buenas, este es mi primer post en este foro, creo que estoy en la secicon correcta. Bueno, vallamos al problema, yo estoy haciendo un ABM ...
  #1 (permalink)  
Antiguo 27/01/2009, 12:08
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
De acuerdo Problema con UPDATE

Buenas, este es mi primer post en este foro, creo que estoy en la secicon correcta.

Bueno, vallamos al problema, yo estoy haciendo un ABM (alta baja y modificacion) de noticias, mi codigo es el siguiente:

Consulta.php
Código PHP:
<?

require_once ('conexion.php');

$consulta mysql_query ("SELECT * FROM noticias");

?>
<table width="75%" border="1">
  <tr>
      <td width="102"><center><font color="#3366FF">ID </font></center></td>
    <td width="109"><center><font color="#3366FF">Titulo</font></center></td>
    <td width="115"><center><font color="#3366FF">Texto</font></center></td>
    <td width="106"><center><font color="#3366FF">Fecha</font></center></td>
    <td width="124"><center><font color="#3366FF">Acciones</font></center></td>
  </tr>
  </table>
 <?
while($noticia mysql_fetch_object($consulta))
{


?>

<table width="75%" border="1">
  <tr>
   <td width="101"><center><? echo $noticia->id;?></center></td>
    <td width="110"><center><? echo $noticia->titulo;?></center></td>
    <td width="116"><center><? echo $noticia->texto;?></center></td>
    <td width="105"><center>
    <? 
    
list($anio,$mes,$dia) = explode ("-",$noticia->fecha);
    echo 
$dia "/" $mes "/" $anio;
    
?></center></td>
    <td width="124"><center><a href="editar.php?id=<? echo $noticia->id;?>">editar</a></center></td>
  </tr>
</table>


<? }
echo 
"<br><br>Cantidad de noticias: " mysql_num_rows($consulta) . "<br>";
?>
<a href="insertar.php"><br><br>Insertar noticias</a>
Eso lo que hace es que al lado de cada registro me aparezca la opcion "editar" y que al pulsar me guarde la ID de la noticia para luego sacarla con un $_GET como vemos ahora en el archivo editar.php


Código PHP:
<?

require_once "conexion.php";
$id2 $_GET['id'];
$fecha date("Y-m-j");
if(!empty (
$_GET['id']))
{
    
    
$resultado mysql_query("SELECT * FROM noticias WHERE id= $id2");
    
$noticia mysql_fetch_object($resultado);
}
?>
<form name="insertar noticia" method="post" action="<?= $_SERVER['PHP_SELF'?>">
  <div align="center"> 
    <table width="88%" height="310" border="1" align="center">
      <tr> 
        <td width="29%"><div align="center">T&iacute;tulo</div></td>
        <td width="33%"><div align="center">Cuerpo</div></td>
        <td width="18%"><div align="center">ID</div></td>
      </tr>
      <tr> 
        <td height="279"><div align="center"> 
            <input name="titulo" type="text" value="<? echo $noticia->titulo;?>">
          </div></td>
        <td><div align="center"> 
            <textarea name="texto" cols="40" rows="15"><? echo $noticia->texto?></textarea>
          </div></td>
        <td><? echo $noticia->id?></td>
      </tr>
    </table>
    <p align="center"> 
      <input type="submit" name="Submit" value="Guardar">
      &nbsp;&nbsp; 
      <input type="reset" name="Submit2" value="Restablecer">
    </p>
    <p>&nbsp;</p>
  </div>
</form>
<p>&nbsp;</p>

<?


if( !empty( $_POST['titulo'] && !empty( $_POST['texto'] && !empty $_POST['fecha']))
{
$sql mysql_query("UPDATE `noticias` SET `titulo` = ''11123'', `texto` = ''ghghjhgj'', `fecha` = ''2009-01-26'' WHERE `id` = '$id2' LIMIT 1"); 
//, texto = $texto, fecha = $fecha 
    
if($sql)
    {
        echo 
"<font color = #58b110>La noticia fue enviada con éxito</font>";
    }
    else
    {    
        echo 
"<font color = #FF0000>Hubo un error enviando la noticia</font><br><br>";
    }
}

?>

<a href="consulta.php"><br><br>Ver todas las noticias</a>
<a href="insertar.php"><br><br>Insertar noticias</a>
Y eso da por resultado FALSE, es decir que no se edita la noticia

Desde ya gracias y si me equivoqué de seccion haganmelo saber
  #2 (permalink)  
Antiguo 27/01/2009, 12:29
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con UPDATE

LIMIT no es cláusula de UPDATE sino de SELECT.

Por favor, trata de no poner código de programación, resulta muy difícil leer código SQL mezclado con cualquier otra cosa (es una regla del foro: Función de la sección de Base de Datos ).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/01/2009, 12:32
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con UPDATE

Cita:
Iniciado por gnzsoloyo Ver Mensaje
LIMIT no es cláusula de UPDATE sino de SELECT.
ok gracias, ahi lo modifique y me quedo asi:

Código PHP:
$ssql "UPDATE noticias SET titulo = '$titulo', texto = '$texto', fecha = '$fecha' WHERE id = '$id2'";
$sql mysql_query($ssql); 
//, texto = $texto, fecha = $fecha 
    
if($sql)
    {
        echo 
"<font color = #58b110>La noticia fue enviada con éxito</font>";
    }
    else
    {    
        echo 
"<font color = #FF0000>Hubo un error enviando la noticia</font><br><br>";
    }

ahora $sql me da TRUE pero sigue sin actualizarlo
  #4 (permalink)  
Antiguo 27/01/2009, 12:35
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Problema con UPDATE

La sentencia está bien escrita, poer lo que no debería haber problema por ese lado.
Verifica el contenido de las variables antes de ejecutar la sentencia SQL, entre otras cosas, el formato de fecha (debe ser AAAA-MM-DD, si lo manejas como DATE).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/01/2009, 12:50
 
Fecha de Ingreso: enero-2009
Mensajes: 3
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Problema con UPDATE

Cita:
Iniciado por gnzsoloyo Ver Mensaje
La sentencia está bien escrita, poer lo que no debería haber problema por ese lado.
Verifica el contenido de las variables antes de ejecutar la sentencia SQL, entre otras cosas, el formato de fecha (debe ser AAAA-MM-DD, si lo manejas como DATE).
Ahi pude solucionar el problema, por si a alguien le pasa lo mismo que a mi, yo agregué un campo oculto llamado "id_o " y simplemente despues en vez de ser

Código PHP:
$ssql "UPDATE noticias SET titulo = '$titulo', texto = '$texto' WHERE id = '$id2'";
$sql mysql_query($ssql); 
quedo como

Código PHP:
$ssql "UPDATE noticias SET titulo = '$titulo', texto = '$texto' WHERE id = '$id_o'";
$sql mysql_query($ssql); 
Y anda perfecto, gracias por todo pueden cerrar si lo desean
  #6 (permalink)  
Antiguo 27/01/2009, 15:43
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Problema con UPDATE

Tema trasladado a PHP.

Por favor publica en los foros correctos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.