Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] hacer una función para actualizar

Estas en el tema de hacer una función para actualizar en el foro de PHP en Foros del Web. saludos. tengo el código para guardar información pero no se como hacer una función para actualizar. este es el código para guardar @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 14/12/2017, 07:57
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Busqueda hacer una función para actualizar

saludos.
tengo el código para guardar información pero no se como hacer una función para actualizar.


este es el código para guardar

Código Javascript:
Ver original
  1. function guardarLocalizacion(){
  2.     var http = new XMLHttpRequest();
  3.     var url = "guardar_php/guardar.php";
  4.     var params = "lat=" + document.getElementById('lat').innerText + "&lng=" + document.getElementById('lng').innerText;
  5.     http.open("POST", url, true);
  6.  
  7.     //Send the proper header information along with the request
  8.     http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  9.  
  10.     http.onreadystatechange = function() {//Call a function when the state changes.
  11.         if(http.readyState == 4 && http.status == 200) {
  12.             if(http.responseText != "-1"){
  13.                 alert("Localizacion guardada.");
  14.             }
  15.             else{
  16.                 alert("Se ha presentado un error guardando.")
  17.             }
  18.         }
  19.     }
  20.     http.send(params);
  21. }


alguna idea para este novato?

gracias
  #2 (permalink)  
Antiguo 14/12/2017, 09:16
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: hacer una función para actualizar

Hola:

Entre guardar y actualízar no debería haber diferencia en javascript pero en php; y sobre todo sql sí... se actualiza con una instrucción sql "update" y se guarda con un "insert"...
En la parte javascript bastaría con una variable discriminadora (guardar=si) luego en php deberías reconocer el discriminante.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 14/12/2017, 09:24
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

gracias por responder caricatos
entiendo pero mira que tengo este update.php y no me guarda no se por que, por consola si captura los datos pero en my bd no la guarda, mira el update.php


Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("conexion.php");
  4.  
  5.     $latitud = $_POST['lat'];
  6.     $longitud = $_POST['lng'];
  7.  
  8.     //$sql="INSERT INTO tblubicacion VALUES(NULL,'$latitud','$longitud')";
  9.     echo  $sql="UPDATE tblubicacion SET(NULL,'$latitud','$longitud', id='16')"; //aqui esta el 16 sólo por que queria que fuera solo una fila
  10.         if(mysqli_query($mysqli,$sql))
  11.         {
  12.             $last_id = $mysqli->insert_id;
  13.             echo ($last_id);
  14.         }
  15.         else                                           
  16.         {
  17.             echo ("-1");
  18.         }
  19. ?>

la verdad no se que estoy haciendo mal

Última edición por dairo65; 14/12/2017 a las 09:36
  #4 (permalink)  
Antiguo 14/12/2017, 09:51
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: hacer una función para actualizar

Hola:

La instrucción update parece que no está bien... creo que debería terminar en un where... por ejemplo terminando where id=16... pero estamos en javascript... si crees que lo tienes bien, podemos mover el tema a php o mysql... pero sería mejor asegurarnos que la programación javascript está bien...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 14/12/2017, 10:00
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

La instrucción update parece que no está bien... creo que debería terminar en un where... por ejemplo terminando where id=16... pero estamos en javascript... si crees que lo tienes bien, podemos mover el tema a php o mysql... pero sería mejor asegurarnos que la programación javascript está bien...

Saludos

efectivamente lo tengo con el where asi

Código PHP:
Ver original
  1. echo  $sql="UPDATE tblubicacion SET(NULL,'$latitud','$longitud', where id='16')";
pero aun así sigue sin guardar.

en la consola de firefox me arroja esto

Código PHP:
Ver original
  1. UPDATE tblubicacion SET(NULL,'5.560269885267431','-73.28242160171149', id='16')

pero como te digo en mysql no actualiza
  #6 (permalink)  
Antiguo 14/12/2017, 10:18
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: hacer una función para actualizar

Prueba asi:
Código PHP:
Ver original
  1. $sql = ("UPDATE tabla SET campo='valor', campo='valor', campo='valor' WHERE campo = 'valor' ")
__________________
[email protected]
HITCEL
  #7 (permalink)  
Antiguo 14/12/2017, 10:35
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

Cita:
Iniciado por xfxstudios Ver Mensaje
Prueba asi:
Código PHP:
Ver original
  1. $sql = ("UPDATE tabla SET campo='valor', campo='valor', campo='valor' WHERE campo = 'valor' ")

lo deje asi
Código PHP:
Ver original
  1. $sql = ("UPDATE tblubicacion SET strLatitud='$latitud', strLongitud='$longitud' WHERE intIdLocalizacion = '16' ");


pero tampoco funciona
  #8 (permalink)  
Antiguo 14/12/2017, 11:44
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 10 meses
Puntos: 263
Respuesta: hacer una función para actualizar

en ese caso, cual es el error que te arroja php? puedes dar con la solucion a ver el error o los logs
__________________
[email protected]
HITCEL
  #9 (permalink)  
Antiguo 14/12/2017, 16:46
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: hacer una función para actualizar

Hola:

Después de mover el tema, un error simple de sintaxis es poner espacios en blanco en las asignaciones y comparaciones:
Código:
WHERE intIdLocalizacion = '16'
Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 15/12/2017, 16:22
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: hacer una función para actualizar

Intentar de este modo

Código PHP:
Ver original
  1. $sql = "UPDATE tblubicacion SET strLatitud='$latitud', strLongitud='$longitud' WHERE intIdLocalizacion = '16'";

Si no funciona, imprimir el query con echo, copiarlo, y ejecutarlo en phpmyadmin o mysqlworkbench para ver si el tema allá arroja un error.
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com
  #11 (permalink)  
Antiguo 16/12/2017, 16:17
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

Cita:
Iniciado por mortiprogramador Ver Mensaje
Intentar de este modo

Código PHP:
Ver original
  1. $sql = "UPDATE tblubicacion SET strLatitud='$latitud', strLongitud='$longitud' WHERE intIdLocalizacion = '16'";

Si no funciona, imprimir el query con echo, copiarlo, y ejecutarlo en phpmyadmin o mysqlworkbench para ver si el tema allá arroja un error.
saludos disculpa por no responde mas rápido pero estaba ocupado un poco.

te cuento que imprimi con echo el codigo y lo peque en mysql alla si me actualiza pero cuando lo hago desde php sigue sin hacer nada, no se que mas hacer

ya cree otra bd a ver si depronto era algun dato que me haga falta pero nada.

mira aqui esta mi bd


Código MySQL:
Ver original
  1. CREATE TABLE IF NOT EXISTS `ubicacion` (
  2. `id` int(100) NOT NULL,
  3.   `Longitud` varchar(100) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL,
  4.   `Latitud` varchar(100) CHARACTER SET utf8 COLLATE utf8_spanish2_ci NOT NULL
  5. ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf32 COLLATE=utf32_spanish_ci;
  6.  
  7. --
  8. -- Volcado de datos para la tabla `ubicacion`
  9. --
  10.  
  11. INSERT INTO `ubicacion` (`id`, `Longitud`, `Latitud`) VALUES
  12. (1, '-73.28242160171149', '-73.45449546181975'),
  13. (2, '54624563635463756746', '345456356'),
  14. (3, '111111111111', '22222222222'),
  15. (4, '888888888888888', '9999999999999'),
  16. (5, '888888888888888', '222222222222222'),
  17. (10, '121212121212121212', '3434343434343434343434');
  18.  
  19. --
  20. -- Índices para tablas volcadas
  21. --
  22.  
  23. --
  24. -- Indices de la tabla `ubicacion`
  25. --
  26. ALTER TABLE `ubicacion`
  27.  ADD PRIMARY KEY (`id`);
  28.  
  29. --
  30. -- AUTO_INCREMENT de las tablas volcadas
  31. --
  32.  
  33. --
  34. -- AUTO_INCREMENT de la tabla `ubicacion`
  35. --
  36. ALTER TABLE `ubicacion`
  37. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  38. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  39. /*!40101 SET COLLATION_CONN

esta es una nueva bd que cree con datos nuevos y tablas nuevas

Última edición por dairo65; 16/12/2017 a las 16:52
  #12 (permalink)  
Antiguo 16/12/2017, 17:04
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

me respondo yo mismo, lo que hice fuer poner esta linea al final de update

Código PHP:
Ver original
  1. $resultado=$conexion->query($query);

no tengo idea por que funciono pero funciono, si alguien me despeja la duda se lo agradeceria ya que para los mas expertos puede ser una bobada pero para nosotros los aprendices si nos valdria oro

gracias
  #13 (permalink)  
Antiguo 17/12/2017, 09:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: hacer una función para actualizar

Cita:
Iniciado por dairo65 Ver Mensaje
me respondo yo mismo, lo que hice fuer poner esta linea al final de update

Código PHP:
Ver original
  1. $resultado=$conexion->query($query);

no tengo idea por que funciono pero funciono, si alguien me despeja la duda se lo agradeceria ya que para los mas expertos puede ser una bobada pero para nosotros los aprendices si nos valdria oro

gracias
Ahora sí funcionó porque inicialmente pretendiste ejecutar la consulta SQL mediante el estilo por procedimientos de la extensión MySQLi; sin embargo, en la primera instrucción del bloque condicional, se puede observar que venías trabajando con el estilo orientado a objetos. Lo que debiste hacer fue fijarte de qué manera hiciste la conexión para así evitar tener este problema.

Cita:
Iniciado por dairo65 Ver Mensaje
gracias por responder caricatos
entiendo pero mira que tengo este update.php y no me guarda no se por que, por consola si captura los datos pero en my bd no la guarda, mira el update.php

Funcionó así porque, como se puede observar dentro del bloque de condiciones, estás trabajando de la forma orientada a objetos de la extensión MySQLi; sin embargo, en la condición pretendiste ejecutar la consulta SQL mediante la forma por procedimientos.

Código PHP:
Ver original
  1. <?php
  2.    
  3.     include("conexion.php");
  4.  
  5.     $latitud = $_POST['lat'];
  6.     $longitud = $_POST['lng'];
  7.  
  8.     //$sql="INSERT INTO tblubicacion VALUES(NULL,'$latitud','$longitud')";
  9.     echo  $sql="UPDATE tblubicacion SET(NULL,'$latitud','$longitud', id='16')"; //aqui esta el 16 sólo por que queria que fuera solo una fila
  10.         if(mysqli_query($mysqli,$sql))
  11.         {
  12.             $last_id = $mysqli->insert_id;
  13.             echo ($last_id);
  14.         }
  15.         else                                           
  16.         {
  17.             echo ("-1");
  18.         }
  19. ?>

la verdad no se que estoy haciendo mal
Nunca está de más echarle una ojeada al manual oficial.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #14 (permalink)  
Antiguo 17/12/2017, 11:05
 
Fecha de Ingreso: abril-2011
Mensajes: 168
Antigüedad: 13 años
Puntos: 5
Respuesta: hacer una función para actualizar

muchas gracias a todos por su amable ayuda

Etiquetas: javascript
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 06:38.