Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 12 Agosto 2017, 03:41 am



Título: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: SrTrp en 12 Agosto 2017, 03:41 am
Como puedo actualizar datos en tiempo real de mysqli? osea cargo todos los datos cuando loggeo un usuario con esto
Código
  1.  
  2.   $_SESSION['id']=$f['id'];
  3. $_SESSION['usuario']=$f['usuario'];
  4. $_SESSION['coins']=$f['coins'];
pero al momento que uso algún cambio con php no se actualizan los datos hasta loggearme  de nuevo hay algún método mas fácil? se me ocurren esta idea estar cargando todo los datos de ese usuario solo con el id
por ejemplo me loggeo y que carge solo el id y en cada pagina ir cargando todos los datos donde este ese id.


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: facuzek232 en 12 Agosto 2017, 19:10 pm
 que cambios haces con php y que datos necesitas que se actualizen? se mas especifico...


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: engel lex en 12 Agosto 2017, 19:16 pm
exacto mysqli se actualiza en tiempo real, es decir, si se hace una consulta retornará lo que esté en la DB en ese instante


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: SrTrp en 12 Agosto 2017, 19:29 pm
Mira los cambio que quiero hacer al llenar un formulario para comprar una membresia si tiene 1000 coins realize el cambio inmediatamente el $PVIP1 es el post del formulario.
Código
  1. if($_SESSION['coins'] >= 1000){                
  2.     $user1 = $_SESSION['usuario'];
  3. $PVIP1 = $PTT;
  4. $USER = $user1;
  5.    $RANG = "Premium";
  6.    switch ($PVIP1) {
  7.        case '1000':
  8.  
  9. $settime1= date('Y-m-d', strtotime('+15 day')) ;
  10.               $sql333 = "UPDATE users SET member_time='$settime1' WHERE usuario='$USER'";
  11. $link->query($sql333);
  12.  
  13.  
  14.             $sql3 = "UPDATE users SET coins=coins - 1000 WHERE usuario='$USER'";
  15. $link->query($sql3);
  16. $sql33 = "UPDATE users SET rango='$RANG' WHERE usuario='$USER'";
  17. $link->query($sql33);
  18.     echo '<script>alert(Ya eres Premium)</script> ';
  19. echo "<script>location.href='http://dominio.com/Tienda.php'</script>";
  20.            break;.....


Ahora estoy probando con esto cuando me loggeo solo cargo la session con id.
Código
  1.   $_SESSION['id']=$f['id'];
  2.  
y en cada pagina que tengo ya dentro de la session cargo este codigo
Código
  1. include('Libreria/control/systemlogin/conex.php');
  2. $IDDER = $_SESSION['id'];
  3. $obt = "SELECT * FROM users WHERE id = '$IDDER'";
  4. $complet = $link->query($obt);
  5. $f=$complet->fetch_array();
  6. $user=$f['usuario'];
  7. $rank=$f['rango'];
  8. $exp=$f['exp'];
  9. $cash=$f['coins'];
  10. $timevip=$f['member_time'];


Si ya se eso, pero pues quiero que en el php me de los datos no se si el código de arriba este bien que vaya cargando todos los datos de ese usuario por pagina?
exacto mysqli se actualiza en tiempo real, es decir, si se hace una consulta retornará lo que esté en la DB en ese instante

Esto hacia antes para vizualisar los datos
Código
  1.  <?php echo '<span style="color:yellow; font-size:20px;"><strong style="color: white;">Cash: </strong>'.$_SESSION['coins'].'</span>';  ?>
esto estoy haciendo ahora al cargar los datos en cada pagina
Código
  1.  <?php echo '<span style="color:yellow; font-size:20px;"><strong style="color: white;">Cash: </strong>'.$cash.'</span>';  ?>


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: engel lex en 12 Agosto 2017, 19:43 pm
por lo que vagamente entiendo quieres que en sesion se actualize coins... pero eso no pasará si tu no haces manualmente, es decir, si $_SESSION['coins'] nunca se actualiza con $cash, siempre será el mismo numero


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: SrTrp en 12 Agosto 2017, 19:52 pm
Es decir que que tengo actualizar $_SESSION['coins'] Manualmente? algo así cuando actualizo las tablas y todo tengo que actualizar la session coins?
 
Código
  1. $cash =  $_SESSION['criptcoins'] - 3000;
  2.  


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: engel lex en 12 Agosto 2017, 19:57 pm
Citar
Es decir que que tengo actualizar $_SESSION['coins'] Manualmente?

por su puesto... que tengas una variable coins, no quiere decir que php de fondo cada vez vuelve a acceder a la db y actualizar todo... los datos de sesión (como cualquier variable) consevan su valor a menos de ser modificados, la unica diferencia de las variables de sesión es que se mantienen estaticas entre diferentes llamadas al motor para un mismo usuario...


si cuando e usuario hace login tu le das valor a $_SESSION['coins'] y más nunca lo cambias, ese usuario tendrá ese mismo valor hasta que se cierre la sesión, sin importar que parece de resto... tu eres quien cambia ese valor, asignandole uno nuevo



Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: SrTrp en 12 Agosto 2017, 20:02 pm
Cierto ya ha quedado resuelto, gracias.!
Código
  1. $_SESSION['coins'] -= 3000;


Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: engel lex en 12 Agosto 2017, 20:08 pm
Código:
$_SESSION['coins'] -= 3000;


que es esto? cada vez que recargue esa pagina se restarán 3.000 coins... es decir, si por x razón la pagina tarda en cargar y presiona f5 8 veces, cuando entre tendrá 40.000 coins menos (si las conexiones llegaron al apache), ese valor debería venir del apache o de algo más seguro que simplemente restar :s



Título: Re: ¿Como actualizar datos mysqli en tiempo real?
Publicado por: SrTrp en 12 Agosto 2017, 20:17 pm
No esa linea la puse en la acción del post de un formulario si este tiene mas o igual de 3000, y selecciono el select de valor 3000 hago las procedentes acciones si este usuario intenta ingresar a esta pagina y no hizo el método post no accionara nada.
Código
  1. if($_SESSION['coins'] >= 3000){                
  2.     $user1 = $_SESSION['usuario'];
  3. $PVIP1 = $PTT;
  4. $USER = $user1;
  5.    $RANG = "Premium";
  6.    switch ($PVIP1) {
  7.        case '3000':
  8.  
  9. $settime1= date('Y-m-d', strtotime('+15 day')) ;
  10.               $sql333 = "UPDATE users SET member_time='$settime1' WHERE usuario='$USER'";
  11. $_SESSION['coins'] -= 3000;
  12. $link->query($sql333);
  13.  
  14.  
  15.