Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Al hacer clic, cambie el estado en la BD

Estas en el tema de Al hacer clic, cambie el estado en la BD en el foro de PHP en Foros del Web. Hola buenos dias!! Estoy realizando una tienda online desde código cero y me he encontrado con un problema. Estoy con el panel de administración, en ...
  #1 (permalink)  
Antiguo 16/03/2017, 09:04
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Al hacer clic, cambie el estado en la BD

Hola buenos dias!!

Estoy realizando una tienda online desde código cero y me he encontrado con un problema.

Estoy con el panel de administración, en la parte superior tengo un icono de carrito a modo de notificación, para que cuando hay una compra nueva me salga un globo con el numero de nuevas compras.

Hasta ahí bien, identifico los nuevos pedios con un campo en la BD llamado status, pedido nuevo = "0" pedido ya leido = "1".

Vale pero necesito que cuando hagas click en el carrito vaya al apartado que muestra todos los pedidos ya sean con valo 0 o 1, "esta parte ya la tengo echa. Pero lo que necesito es que al llegar a este apartado que muestra todos los pedidos, cambie el estado de 0 a 1 en los pedidos nuevos, como que ya están leidos.

Os muestro lo que tengo hasta ahora y espero me podais ayudar.

ESTE ES EL SCRIPT

Código Javascript:
Ver original
  1. <script>
  2. (function($) {
  3.  var fnConsulta = function(){
  4. $.ajax({
  5. url : 'totalpedidos.php', // URL donde se encuentra el archivo php
  6. type : 'POST', // Puede ser GET
  7. success : function( resp ){ // Función que procesará la respuesta (JSON)
  8. // Aquí ya puedo mostrar los globos con la respuesta
  9. $( "#respuestaTotalPedidos" ).html( resp );
  10. },
  11. error: function(){
  12. alert( 'Ocurrió un error' );
  13. }
  14. });
  15. };
  16. fnConsulta();
  17. // Ahora va el código del timer, llamará al php cada minuto
  18. timerConsulta = setInterval(function(){
  19. fnConsulta();
  20. }, 3000);
  21. })(jQuery);
  22. </script>


CON ESTE HTML MUESTO EL GLOBO

Código PHP:
Ver original
  1. <span class="badge badge-important" id="respuestaTotalPedidos">&nbsp;</span>

Y ESTE ES EL ARCHIVO QUE CONECTA A LA BD PARA MOSTRARME SOLO LOS QUE TIENEN STATUS 0

Código PHP:
Ver original
  1. <?php
  2. $result=mysql_query("SELECT count(*) as total from pedidos WHERE status=0");
  3. while ($data = mysql_fetch_assoc($result)) {
  4.     echo $data['total'] ? $data['total'] : 0  ;
  5. }
  6. ?>
  7. <?php

He intentado hacer algo parecido pero que vaya a un archivo que sea UPDATE pero no hay forma.. desde aqui va a ver_perdidos.php que es donde se muestran todos los pedidos.

Código PHP:
Ver original
  1. <li class="purple dropdown-modal">
  2. <a  href="ver_pedidos.php">
  3. <i class="ace-icon fa fa-cart-plus icon-animated-bell"></i>
  4. <span class="badge badge-important" id="respuestaTotalPedidos">&nbsp;</span>
  5. </a></li>

Gracias
  #2 (permalink)  
Antiguo 16/03/2017, 11:16
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: Al hacer clic, cambie el estado en la BD

"He intentado hacer algo parecido pero que vaya a un archivo que sea UPDATE" ¿Update de Qué?
  #3 (permalink)  
Antiguo 16/03/2017, 12:20
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Al hacer clic, cambie el estado en la BD

Cita:
Iniciado por sustentio Ver Mensaje
"He intentado hacer algo parecido pero que vaya a un archivo que sea UPDATE" ¿Update de Qué?
Hola...

Con UPDATE, me refiero que cargue un archivo que a través de una consulta modifique los campos de la BD.
  #4 (permalink)  
Antiguo 16/03/2017, 12:52
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Al hacer clic, cambie el estado en la BD

Si simplemente quieres que cuando el usuario visite la página de todos los pedidos cambie el estado de todos a 1 ejecuta esta sentencia:

Cambiar los estado en 0 a 1
Código SQL:
Ver original
  1. UPDATE pedidos SET STATUS=1 WHERE STATUS=0


Edit:

/* estatus es el campo de tu estado, el HIGHLIGHT lo pone en mayúscula */
UPDATE pedidos SET status=1 WHERE status=0
__________________
Unset($vida['malRollo']);
  #5 (permalink)  
Antiguo 16/03/2017, 13:03
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Al hacer clic, cambie el estado en la BD

Cita:
Iniciado por xerifandtomas Ver Mensaje
Si simplemente quieres que cuando el usuario visite la página de todos los pedidos cambie el estado de todos a 1 ejecuta esta sentencia:

Cambiar los estado en 0 a 1
Código SQL:
Ver original
  1. UPDATE pedidos SET STATUS=1 WHERE STATUS=0


Edit:

/* estatus es el campo de tu estado, el HIGHLIGHT lo pone en mayúscula */
UPDATE pedidos SET status=1 WHERE status=0

Pero como tendría que desarrollar esa consulta, o en que archivo, o como hacer que la lea????
  #6 (permalink)  
Antiguo 16/03/2017, 13:41
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: Al hacer clic, cambie el estado en la BD

Cita:
Iniciado por miguelA4 Ver Mensaje
Pero como tendría que desarrollar esa consulta, o en que archivo, o como hacer que la lea????
en otro archivo php y la llamas mediante ajax ¿no es lo que quieres?
  #7 (permalink)  
Antiguo 16/03/2017, 14:59
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Al hacer clic, cambie el estado en la BD

Si simplemente quiere sque una vez que se visita la pagina donde muestras todos los pedidos con estados=0 se cambien a estado=1 ejecuta la sentencia en ese archivo despues de mostrar los articulos, vamos para no liarte mejor hazlo al final del archivo antes de cerrar la conexion y listo.

Agrega algo como esto
Código PHP:
Ver original
  1. mysqli_query("UPDATE pedidos SET status=1 WHERE status=0");
__________________
Unset($vida['malRollo']);
  #8 (permalink)  
Antiguo 16/03/2017, 15:05
 
Fecha de Ingreso: noviembre-2003
Ubicación: Zaragoza, España
Mensajes: 1.257
Antigüedad: 20 años, 5 meses
Puntos: 154
Respuesta: Al hacer clic, cambie el estado en la BD

Hola,

También puede ser que se deba cambiar el estado al ver el pedido en concreto, que para mi sería lo más lógico.
  #9 (permalink)  
Antiguo 17/03/2017, 02:39
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Al hacer clic, cambie el estado en la BD

Cita:
Iniciado por xerifandtomas Ver Mensaje
Si simplemente quiere sque una vez que se visita la pagina donde muestras todos los pedidos con estados=0 se cambien a estado=1 ejecuta la sentencia en ese archivo despues de mostrar los articulos, vamos para no liarte mejor hazlo al final del archivo antes de cerrar la conexion y listo.

Agrega algo como esto
Código PHP:
Ver original
  1. mysqli_query("UPDATE pedidos SET status=1 WHERE status=0");
Buenas, lo del UPDATE más o menos lo tengo claro, el problema es que no se como crear el AJAX y como hacer que cargue el AJAX desde un href y al mismo tiempo vaya a ver_pedidos.php

Mil gracias!
  #10 (permalink)  
Antiguo 17/03/2017, 12:18
 
Fecha de Ingreso: abril-2015
Ubicación: Murcia
Mensajes: 12
Antigüedad: 9 años
Puntos: 0
Respuesta: Al hacer clic, cambie el estado en la BD

Cita:
Iniciado por miguelA4 Ver Mensaje
Buenas, lo del UPDATE más o menos lo tengo claro, el problema es que no se como crear el AJAX y como hacer que cargue el AJAX desde un href y al mismo tiempo vaya a ver_pedidos.php

Mil gracias!
Hola para hacer que cargue un ajax desde un href solo tienes que poner un evento onclick que ejecute la función ajax, por ejemplo:
Código:
<a onclick="funcion_ajax();">Hacer click aquí</a>
o también lo puedes a hacer así:
Código:
<a href="javascript: funcion_ajax();">Hacer click aquí</a>
  #11 (permalink)  
Antiguo 20/03/2017, 03:41
 
Fecha de Ingreso: marzo-2015
Ubicación: Valencia
Mensajes: 132
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Al hacer clic, cambie el estado en la BD

Buenos días. De momento lo he solucionado con:

Código PHP:
Ver original
  1. mysqli_query("UPDATE pedidos SET status=1 WHERE status=0");

No se si sera la mejor forma! pero de momento lo tengo solucionado, muchisimas gracias!

Lo marco como solucionado.

Etiquetas: bd, clic, estado, html, mysql, select, sql
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 15:42.