elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  actualizar tabla automaticamente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: actualizar tabla automaticamente  (Leído 5,613 veces)
pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
actualizar tabla automaticamente
« en: 13 Septiembre 2010, 20:39 pm »

Hola a todos, tengo un problema con mysql:
En mi database tengo dos tablas, tbl_users, tbl_points. Cuando alguien se registra inserta los valores directamente en tbl_users. Entonces quisiera que a la vez ALGUNOS valores de esos (ej: userID, username, nick...) se insertaran tambien en tbl_points. Como puedo hacer eso mediante dreamweaver? o si hace falta escribiendo el codigo a mano?

Gracias a todos, pajaras


En línea

pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #1 en: 13 Septiembre 2010, 20:40 pm »

o sino una vez insertados en tbl_users, actualizar/copiar automaticamente los campos deseados en tbl_points.
gracias


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #2 en: 13 Septiembre 2010, 20:45 pm »

Código
  1.  Ejecución de query INSERT en tbl_users;
  2.  Si (ejeccion anterior es correcta){
  3.    Ejecución de query INSERT en tbl_points;
  4.  }De lo contrario{
  5.    Mostrar error y finalizar;
  6.  }

Prefiero usar Store Procedure, por si algún fallo en la query1 o query2, usar la función ROLLBACK.
En línea

Te vendería mi talento por poder dormir tranquilo.
pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #3 en: 13 Septiembre 2010, 20:51 pm »

mas o menos lo entiendo, pero soy "nuevo" en esto, estoy utilizando phpadmin de mi hosting, ese codigo lo debo insertar en la pestaña SQL, pero una vez lo inserte y ponga GO, lo ejecuta y luego se borra la acción, no lo conserva para siempre.

Me lo puedes explicar mejor?
muchas gracias
En línea

pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #4 en: 13 Septiembre 2010, 21:07 pm »

Gracias por todo shellroot, este es el codigo, ya lo entiendo pero el if insert en tbl_points donde lo pongo?

<?php
// *** Validate request to login to this site.
if (!isset($_SESSION)) {
  session_start();
}

$loginFormAction = $_SERVER['PHP_SELF'];
if (isset($_GET['accesscheck'])) {
  $_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['apodo'])) {
  $loginUsername=$_POST['apodo'];
  $password=$_POST['pwd'];
  $MM_fldUserAuthorization = "userGroup";
  $MM_redirectLoginSuccess = "login_succed.php";
  $MM_redirectLoginFailed = "login_failed.php";
  $MM_redirecttoReferrer = false;
  mysql_select_db($database_conn_eeibairsoft, $conn_eeibairsoft);
     
  $LoginRS__query=sprintf("SELECT apodo_nick, pwd, userGroup FROM tbl_users WHERE apodo_nick='%s' AND pwd='%s'",
  get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));
   
  $LoginRS = mysql_query($LoginRS__query, $conn_eeibairsoft) or die(mysql_error());
  $loginFoundUser = mysql_num_rows($LoginRS);
  if ($loginFoundUser) {
   
    $loginStrGroup  = mysql_result($LoginRS,0,'userGroup');
   
    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;        

    if (isset($_SESSION['PrevUrl']) && false) {
      $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];   
    }
    header("Location: " . $MM_redirectLoginSuccess );
  }
  else {
    header("Location: ". $MM_redirectLoginFailed );
  }
}
?>
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #5 en: 13 Septiembre 2010, 21:13 pm »

Haz un script en php, donde contenga los campos necesarios para llenar la tabla tbl_users, después verifica que si la ejecución de la query1 es correcta, pasa a insertar los valores que os quereis en la tabla tbl_points. Esta sería la forma simple, pero con complicaciones a futuro.

Esta sería la forma más adecuada de hacerlo, crear un Store Procedure, puede ser así,
Código
  1.  
  2. CREATE PROCEDURE 'Inserts'(
  3.  @ID INT,
  4.  @Nombre VARCHAR(50),
  5.  @Apellido VARCHAR(50)
  6. )AS
  7.  
  8. DECLARE @sNombre AS VARCHAR(100);
  9. SET @sNombre = @Nombre + ' ' @Apellido;
  10.  
  11. BEGIN TRANSACTION 'Insert-tbl_users'
  12.  INSERT INTO 'tbl_users' VALUES (@ID, @Nombre, @Apellido);
  13.  IF @@ERROR <> 0
  14.    BEGIN TRANSACTION 'Insert-tbl_points'
  15.      INSERT INTO 'tbl_points' VALUES (@ID, @sNombre);
  16.      IF @@ERROR <> 0
  17.        SELECT 'Se ingresaron correctamente los datos' AS Msg;
  18.      ELSE
  19.        ROLLBACK TRANSACTION 'Insert-tbl_points'
  20.    END TRANSACTION 'Insert-tbl_points'
  21.  ELSE
  22.    ROLLBACK TRANSACTION 'Insert-tbl_users'
  23. END TRANSACTION 'Insert-tbl_users'
  24. GO

PD: Lo codee de rapidin, así que puede estar malo. Además creo que lo hice pensando en MSSQL. xD
En línea

Te vendería mi talento por poder dormir tranquilo.
pajaras

Desconectado Desconectado

Mensajes: 172



Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #6 en: 13 Septiembre 2010, 21:20 pm »

uffff, esto me queda un poco lejos creo, sorry.
No hay ningun modo de aprovechar mi codigo anterior y poner un:

else if{
INESRT INTO tbl_points
}

gracias, de este modo me ahorraria bastantes problemas por mi parte.
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: actualizar tabla automaticamente
« Respuesta #7 en: 13 Septiembre 2010, 22:02 pm »

Por eso, a ver,
Código
  1.  $sQuery1 = 'INSERT INTO tbl_user ...';
  2.  $sQuery2 = 'INSERT INTO tbl_points ...';
  3.  
  4.  $sResultQuery1 = mysql_query($sQuery1);
  5.  if($sResultQuery1){
  6.    $sResultQuery2 = mysql_query($sQuery2);
  7.    if($sResultQuery2){
  8.      echo 'Las dos querys se han ejecutado correctamente';
  9.    }else{
  10.      echo 'La query2 há fallado';
  11.    }
  12.  }else{
  13.    echo 'La query1 há fallado';
  14.  }

Pero en un futuro, la query1 puede pasar por el if correctamente, pero la query2 no se ejecutaría, así que no puedes deshacer la ejecución de la primer query.
En línea

Te vendería mi talento por poder dormir tranquilo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines