Foros del Web » Programando para Internet » PHP »

Actualizar campos

Estas en el tema de Actualizar campos en el foro de PHP en Foros del Web. Hola! Igual y ya esta el tema sobre el que preguntaré pero estoy atorada con esto... Resulta que tengo que actualizar algunos campos pero al ...
  #1 (permalink)  
Antiguo 22/10/2013, 12:26
 
Fecha de Ingreso: octubre-2012
Ubicación: México
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 1
Actualizar campos

Hola!
Igual y ya esta el tema sobre el que preguntaré pero estoy atorada con esto...

Resulta que tengo que actualizar algunos campos pero al momento de darle "actualizar" me sale el siguiente error:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de Lucas Palacios' at line 1

Si en la parte del select lo hago así: "select * from delegados where nombre = $registro".... si me muestra los campos pero no actualiza y si le quito las comillas a registro, me manda el error que puse arriba.

Los código que tengo para actualizar es el siguiente:

Código PHP:
Ver original
  1. $db_link = mysql_select_db('delegados', $link);
  2. if (!$db_link){
  3.     die ('Error al intentar seleccionar la bd' . mysql_error());
  4. }
  5. /**Fin de conexion**/
  6. //recogemos el ID del registro a actualizar
  7. if (isset ($_GET['nombre'])){
  8.     $registro = $_GET['nombre'];
  9.     //hacemos la consulta para mostrar los datos
  10.     $sql = mysql_query ("select * from delegados where nombre = $registro", $link) or die (mysql_error());
  11.     $row = mysql_fetch_array ($sql);
  12.     //advertimos
  13.     //$mensaje = "Actualizar los datos <b> $row ['registro']</b>";
  14. }
  15. //comprobamos si ha sido enviado el formulario
  16. if (isset($_POST['actualizar']) && $_POST['actualizar'] == 'actualizar') {
  17. //comprobamos que no lleguen campos vacíos
  18. if (!empty ($_POST['delegacion']) &&
  19. !empty ($_POST['estado']) && !empty ($_POST['cargo']) && !empty ($_POST['nombre']) && !empty ($_POST['propuesta']) && !empty ($_POST['estatus']) && !empty ($_POST['observaciones']) && !empty ($_POST['telefono'])){
  20.     //creamos las variables que vamos a usar en la consulta UPDATE y le asignamos sus valores  
  21.     $delegacion = $_POST['delegacion'];
  22.     $estado = $_POST['estado'];
  23.     $cargo = $_POST['cargo'];
  24.     $nombre = $_POST['nombre'];
  25.     $propuesta = $_POST['propuesta'];
  26.     $estatus = $_POST['estatus'];
  27.     $observaciones = $_POST['observaciones'];
  28.     $telefono =$_POST['telefono'];
  29.    
  30.     //la consulta UPDATE
  31.    
  32.     //echo "UPDATE factura SET num_partida =".$num_partida.", num_factura = ".$num_factura.", fecha_ingreso =".$fecha_ingreso." where num_contrato=".$registro;
  33.     $sqlUpdate="UPDATE delegados SET delegacion =".$delegacion.", estado =".$estado.", cargo =".$cargo.", nombre =".$nombre.", propuesta =".$propuesta.", estatus =".$estatus.", observaciones =".$observaciones.", telefono =".$telefono." where nombre=".$registro;
  34.    
  35.     mysql_query($sqlUpdate, $link)or die (mysql_error ());
  36.     echo "Registro actualizado correctamente";
  37. }else{
  38.    
  39.     echo "debe llenar todos los campos";
  40. }
  41. }else{
  42.    
  43.     //mostramos el mensaje
  44.     echo "<p" .$mensaje. "</p>";
  45.     ?>


Y la variable nombre la envío así:

Código PHP:
Ver original
  1. ?>
  2. <tr>
  3. <td align="center" bgcolor="#FFFFFF"><?php print $row ["delegacion"];?> </td>
  4. <td align="center" bgcolor="#FFFFFF"><?php print $row ["estado"];?></td>  
  5. <td align="center" bgcolor="#FFFFFF"><?php print $row ["cargo"];?></td>
  6. <?php
  7. echo "<td><a href=\"editar.php?nombre=".$row ['nombre']."\">";
  8. echo $row['nombre']."</a></td>";
  9. ?>
  10. <td align="center" bgcolor="#FFFFFF"><?php print $row ["propuesta"];?> </td>
  11. <td align="center" bgcolor="#FFFFFF"><?php print $row ["estatus"];?> </td>
  12. <td align="center" bgcolor="#FFFFFF"><?php print $row ["observaciones"];?> </td>
  13. <td align="center" bgcolor="#FFFFFF"><?php print $row ["telefono"];?> </td>
  14. <td><a href="eliminar.php?nombre=<?php echo $row ["nombre"];?>">Eliminar</a></td>              
  15.     </tr>  
  16.   <?php


Espero que puedan ayudarme porque igual es un mínimo detalle pero aún no lo encuentro

Gracias!!!
  #2 (permalink)  
Antiguo 22/10/2013, 13:06
 
Fecha de Ingreso: julio-2013
Mensajes: 309
Antigüedad: 10 años, 9 meses
Puntos: 2
Respuesta: Actualizar campos

Hola

en vez de poner "where nombre=".$registro;" pon where nombre=".$nombre ; si es el mismo valor que recibira


ademas creo que no deberias eliminar un registro por medio de nombre y apellido ya que pudieran haber duplicados , borralos por medio de un campo unico como autoincremento o cedula de identidad

Saludos
  #3 (permalink)  
Antiguo 22/10/2013, 13:20
Avatar de xSkArx  
Fecha de Ingreso: marzo-2008
Ubicación: Chile
Mensajes: 945
Antigüedad: 16 años, 1 mes
Puntos: 96
Respuesta: Actualizar campos

Haz
Código PHP:
Ver original
  1. echo $sqlUpdate;
__________________
Busca, lee y practica todo lo que puedas.
Usa siempre el buscador antes de postear.
Si posteas código, utiliza el HIGHLIGHT correcto.
  #4 (permalink)  
Antiguo 22/10/2013, 13:24
 
Fecha de Ingreso: octubre-2012
Ubicación: México
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Actualizar campos

Hola iniciopublic!!

Muchas gracias por tu respuesta!

Ya la probé y no funciona, me manda el mismo error, seguiré intentando y si logro solucionarlo subiré la respuesta. :)
  #5 (permalink)  
Antiguo 22/10/2013, 14:17
 
Fecha de Ingreso: octubre-2012
Ubicación: México
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Actualizar campos

Hola SkAr88!

Ya hice el echo $sqlUpdate; y en teoría si hace la actualización porque camibé Aguascalientes por Jalisco y me mostró esto:

Código PHP:
Ver original
  1. UPDATE delegados SET delegacion =SAGARPA, estado =Jalisco, cargo =Delegado, nombre =Ernesto de Lucas Palacios , propuesta =nada, estatus =Nombrado, observaciones =Sin observaciones, telefono =55555555 where nombre=Ernesto de Lucas PalaciosYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'de Lucas Palacios , propuesta =nada, estatus =Nombrado, observaciones =Sin obser' at line 1

Pero no lo guarda..

Sigo intentando!

Gracias.
  #6 (permalink)  
Antiguo 22/10/2013, 14:23
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Actualizar campos

Las cadenas en mysql DEBEN estar entre ' comillas simples o " comillas dobles, esa es la razon de tu problema.

Ejemplo

Código PHP:
Ver original
  1. //bien
  2. $sql = "UPDATE FROM tabla SET campo='".$foo."'";
  3.  
  4. //mal
  5. $sql = "UPDATE FROM tabla SET campo=".$foo."";

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #7 (permalink)  
Antiguo 22/10/2013, 15:01
 
Fecha de Ingreso: octubre-2012
Ubicación: México
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Actualizar campos

Jonni09lo:

Ya probé tus sugerencias y las anteriores.. pero no funciona :(

De igual forma muchas gracias por el tiempo para responderme!!

:)
  #8 (permalink)  
Antiguo 22/10/2013, 15:05
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Actualizar campos

A ver, para poderte ayudar correctamente, debes aprender a depurar, además con lo que te dijo @SkAr88 es suficiente. Si haces de nuevo

Código PHP:
Ver original
  1. echo $sqlUpdate;

Que es lo que te muestra.

Ademas recuerda que el error lo esta produciendo tu mal sintaxis en MySql y si no eres capaz de depurar eso tu mismo ya tenemos un problema

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #9 (permalink)  
Antiguo 23/10/2013, 12:55
 
Fecha de Ingreso: octubre-2012
Ubicación: México
Mensajes: 40
Antigüedad: 11 años, 6 meses
Puntos: 1
Respuesta: Actualizar campos

hola otra vez, una disculpa por responder hasta hoy..

Jonni09lo.. gracias por tu respuesta, desgraciadamente no tengo mucho conocimiento en esto y ya intenté solucionarlo de varias formas, ese código funciona perfecto en otro mini sistemita sólo que en lugar de "nombre" le pongo "num_partida" y no me causa conflicto!... no se porque este pasando esto.

De cualquier forma muchas gracias por sus aportaciones :)

Etiquetas: mysql
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 09:10.