Foros del Web » Programando para Internet » PHP »

Problema con UPDATE sql

Estas en el tema de Problema con UPDATE sql en el foro de PHP en Foros del Web. Hola a todos, tengo un problema con este update, cuando finaliza el proceso me dice información actualizada pero no realiza el update en la base ...
  #1 (permalink)  
Antiguo 02/11/2012, 14:13
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema con UPDATE sql

Hola a todos, tengo un problema con este update, cuando finaliza el proceso me dice información actualizada pero no realiza el update en la base de datos, ya probe varias cosas y no logro solucionarlo, desde ya gracias a todos x colaborar, saludos!

Código PHP:
Ver original
  1. <?php
  2. $titulo = trim($_POST["titulo"]);
  3. $contenido = trim($_POST["contenido"]);
  4.  
  5. @ $link = mysql_connect("localhost","root",""); // Me conecto a mysql
  6.  
  7. if(!$link)
  8. {
  9.     die("Error al conectar a MySQL");
  10. }
  11.  
  12. @ $db = mysql_select_db("novedades"); //Elijo la base
  13.  
  14. if(!$db)
  15. {
  16.     die("Error al seleccionar la base de datos");
  17. }
  18.  
  19. $sql = "UPDATE noves SET titulo='$titulo', contenido='$contenido' WHERE titulo='$titulo'";
  20.  
  21. @ $rs = mysql_query($sql,$link); // Ejecuto la consulta
  22.  
  23. if(!$rs)
  24.     {
  25.         echo "ERROR AL ACTUALIZAR LA INFORMACION";
  26.     }
  27.     else
  28.     {
  29.         echo "INFORMACION ACTUALIZADA";
  30.     }
  31.  
  32. ?>

Última edición por gnzsoloyo; 02/11/2012 a las 14:20 Razón: Codigo sin etiquetar
  #2 (permalink)  
Antiguo 02/11/2012, 14:20
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 sql

El UPDATE está correctamente escrito, pero creo que tienes un error de lógica en la programación (la sentencia se ejecuta hayas logrado la conexión o no).
Como programación es off-topic de este foro (no se tratan esos temas acá), te paso al foro de PHP para que revisen el caso.
__________________
¿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 02/11/2012, 14:41
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 11
Respuesta: Problema con UPDATE sql

La linea sql tendria que ser así:

Código PHP:
$sql "UPDATE noves SET titulo='".$titulo."', contenido='".$contenido."' WHERE titulo='".$titulo."'"
fijate y me contas como te fue...
  #4 (permalink)  
Antiguo 02/11/2012, 14:44
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con UPDATE sql

grassofabian gracias por tu rta, pero no me resulta tampoco de esa forma
  #5 (permalink)  
Antiguo 02/11/2012, 15:00
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 11
Respuesta: Problema con UPDATE sql

Me parece que el error esta en WHERE titulo='$titulo'

Partiendo de esa condicion no te va a actualizar nada, a ver:

VOs queres actualizar el campo "titulo", $titulo="Nombres", "Nombres" es el valor actualizado en "titulo". Pero la actualizacion la va realizar si encuentra que "titulo" sea igual a "Nombres". Por lo tanto no lo va a encontrar y por ende no va a actualizar nada.

No se si vos queres actualizar "titulo" y "contenido", porque de la manera que vos lo estas poniendo con el condicional, tendrias que actualizar solamente "contenido" y ahi sí con la condicion que "titulo" sea igual a "$titulo", es decir si titulo es igual a "Nombre", va a actualizar el campo "contenido" que pertenesca a "Nombre".

Entonces sería:

$sql = "UPDATE noves SET contenido='".$contenido."' WHERE titulo='".$titulo."'";

Espero que haya sido claro porque explicarlo es más difici que entenderlo.
  #6 (permalink)  
Antiguo 02/11/2012, 15:10
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con UPDATE sql

Entiendo ahora hice lo siguiente:

$sql = "UPDATE noves SET contenido='".$contenido."' WHERE titulo='".$titulo."'";

y me actualiza el contenido de tal titulo, pero yo necesito poder actualizar tanto el titulo como el contenido, como tendría que armar el WHERE?

Muchas gracias desde ya
  #7 (permalink)  
Antiguo 02/11/2012, 15:15
Avatar de CoriaWeb  
Fecha de Ingreso: septiembre-2012
Ubicación: Coria del Río - Sevilla
Mensajes: 1.795
Antigüedad: 12 años, 2 meses
Puntos: 130
Respuesta: Problema con UPDATE sql

Haber... creo que esta mal montada.. la fila no tiene un campo unico? por ejemplo un id autoincrement, lo suyo sería que recogieses el valor id del campo y en el where hagas:

$sql = "UPDATE noves SET contenido='".$contenido."',titulo='".$titulo."' WHERE id='".$id."'";

es que del otro modo le indicas solo contenido despues de set, con lo que solo actualiza el contenido no el titulo ;)
__________________
Hosting de Calidad
Servidores Dedicados Administrados
CoriaWeb.hosting
  #8 (permalink)  
Antiguo 02/11/2012, 15:18
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 11
Respuesta: Problema con UPDATE sql

Si ud quiere actualizar tambien el titulo, de alguna manera tiene que saber que valor tiene el mismo antes de ser actualizado, un ejemplo:

Antes de ser actualizado:
Titulo="Jose"
Contenido="espero que te sirva"

Para actualizar:

$titulo="Pancho"
$contenido="no te sirvio"

Para actualizar sería:

Código PHP:
$sql "UPDATE noves SET titulo='".$titulo."', contenido='".$contenido."' WHERE titulo='jose'"
de esta manera estas buscando en "titulo" el valor "Jose" y estas reemplazando por "Pancho" y tambien su contenido.

Lo del $id esta correcto como te dice CoriaWeb, pero en el caso que no lo tengas, entonces antes de enviar el formulario tendrias que capturar el valor del "titulo", antes de ser modificado, en una variable y luego recuperarlo para el condicional.

Última edición por grassofabian; 02/11/2012 a las 15:28
  #9 (permalink)  
Antiguo 02/11/2012, 15:36
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con UPDATE sql

Entiendo perfectamente lo que me dicen en la tabla tengo las columnas id (autoincrement) titulo y contenido como debería hacer para recuperar ese id y poder actualizar tanto el titulo como el contenido?

Muchas gracias muchachos!!!
  #10 (permalink)  
Antiguo 02/11/2012, 15:43
 
Fecha de Ingreso: noviembre-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 11
Respuesta: Problema con UPDATE sql

Bueno, las actualizaciones vienen de un formulario. Al momento de cargar ese formulario, aparecen los campos con los datos del "Titulo" y "Contenido" ?

Si es así vos tuvistes que realizar una consulta sql para llenar esos campos, de ser
así, al momento de realizar la consulta para llenar esos campos, captura tambien el ID, y luego recuperas para aplicarlo al condicional del UPDATE.
  #11 (permalink)  
Antiguo 02/11/2012, 15:56
 
Fecha de Ingreso: julio-2009
Mensajes: 55
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Problema con UPDATE sql

Perfecto muchisimas gracias!!! lo logré después de todo el día lidiando con este tema, les debo una!! Saludos

Etiquetas: select, sql, update
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 12:56.