¿Como actualizar datos mysqli en tiempo real?

Iniciado por SrTrp, 12 Agosto 2017, 03:41 AM

0 Miembros y 1 Visitante están viendo este tema.

SrTrp

Como puedo actualizar datos en tiempo real de mysqli? osea cargo todos los datos cuando loggeo un usuario con esto
Código (php) [Seleccionar]
 
session_start();
  $_SESSION['id']=$f['id'];
$_SESSION['usuario']=$f['usuario'];
$_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.

facuzek232

 que cambios haces con php y que datos necesitas que se actualizen? se mas especifico...

engel lex

exacto mysqli se actualiza en tiempo real, es decir, si se hace una consulta retornará lo que esté en la DB en ese instante
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

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 (php) [Seleccionar]
if($_SESSION['coins'] >= 1000){                
    $user1 = $_SESSION['usuario'];
$PVIP1 = $PTT;
$USER = $user1;
   $RANG = "Premium";
   switch ($PVIP1) {
       case '1000':
           
$settime1= date('Y-m-d', strtotime('+15 day')) ;
              $sql333 = "UPDATE users SET member_time='$settime1' WHERE usuario='$USER'";
$link->query($sql333);
             
             
            $sql3 = "UPDATE users SET coins=coins - 1000 WHERE usuario='$USER'";
$link->query($sql3);
$sql33 = "UPDATE users SET rango='$RANG' WHERE usuario='$USER'";
$link->query($sql33);
    echo '<script>alert(Ya eres Premium)</script> ';
echo "<script>location.href='http://dominio.com/Tienda.php'</script>";
           break;.....



Ahora estoy probando con esto cuando me loggeo solo cargo la session con id.
Código (php) [Seleccionar]

session_start();
  $_SESSION['id']=$f['id'];

y en cada pagina que tengo ya dentro de la session cargo este codigo
Código (php) [Seleccionar]
include('Libreria/control/systemlogin/conex.php');
$IDDER = $_SESSION['id'];
$obt = "SELECT * FROM users WHERE id = '$IDDER'";
$complet = $link->query($obt);
$f=$complet->fetch_array();
$user=$f['usuario'];
$rank=$f['rango'];
$exp=$f['exp'];
$cash=$f['coins'];
$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?
Cita de: 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


Esto hacia antes para vizualisar los datos
Código (php) [Seleccionar]
  <?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 (php) [Seleccionar]
  <?php echo '<span style="color:yellow; font-size:20px;"><strong style="color: white;">Cash: </strong>'.$cash.'</span>';  ?>

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

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 (php) [Seleccionar]

$cash =  $_SESSION['criptcoins'] - 3000;

engel lex

CitarEs 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

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

Cierto ya ha quedado resuelto, gracias.!
Código (php) [Seleccionar]
$_SESSION['coins'] -= 3000;

engel lex

$_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

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

SrTrp

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 (php) [Seleccionar]

if($_SESSION['coins'] >= 3000){               
     $user1 = $_SESSION['usuario'];
$PVIP1 = $PTT;
$USER = $user1;
    $RANG = "Premium";
    switch ($PVIP1) {
        case '3000':

$settime1= date('Y-m-d', strtotime('+15 day')) ;
               $sql333 = "UPDATE users SET member_time='$settime1' WHERE usuario='$USER'";
$_SESSION['coins'] -= 3000;
$link->query($sql333);