Autor
|
Tema: actualizar tabla automaticamente (Leído 5,593 veces)
|
pajaras
|
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
|
o sino una vez insertados en tbl_users, actualizar/copiar automaticamente los campos deseados en tbl_points. gracias
|
|
|
En línea
|
|
|
|
Shell Root
|
Ejecución de query INSERT en tbl_users; Si (ejeccion anterior es correcta){ Ejecución de query INSERT en tbl_points; }De lo contrario{ Mostrar error y finalizar; }
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
|
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
|
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
|
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í, CREATE PROCEDURE 'Inserts'( @ID INT, @Nombre VARCHAR(50), @Apellido VARCHAR(50) )AS DECLARE @sNombre AS VARCHAR(100); SET @sNombre = @Nombre + ' ' @Apellido; BEGIN TRANSACTION 'Insert-tbl_users' INSERT INTO 'tbl_users' VALUES (@ID, @Nombre, @Apellido); IF @@ERROR <> 0 BEGIN TRANSACTION 'Insert-tbl_points' INSERT INTO 'tbl_points' VALUES (@ID, @sNombre); IF @@ERROR <> 0 SELECT 'Se ingresaron correctamente los datos' AS Msg; ELSE ROLLBACK TRANSACTION 'Insert-tbl_points' END TRANSACTION 'Insert-tbl_points' ELSE ROLLBACK TRANSACTION 'Insert-tbl_users' END TRANSACTION 'Insert-tbl_users' 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
|
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
|
Por eso, a ver, $sQuery1 = 'INSERT INTO tbl_user ...'; $sQuery2 = 'INSERT INTO tbl_points ...'; if($sResultQuery1){ if($sResultQuery2){ echo 'Las dos querys se han ejecutado correctamente'; }else{ echo 'La query2 há fallado'; } }else{ echo 'La query1 há fallado'; }
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.
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
¿Por qué no se modifica Android para que se pueda actualizar automáticamente?
Dudas Generales
|
GeorgArming
|
7
|
3,935
|
30 Diciembre 2012, 15:00 pm
por GeorgArming
|
|
|
Actualizar tamaño jFrame automaticamente
Java
|
andrex.125
|
2
|
2,681
|
2 Mayo 2014, 07:32 am
por andrex.125
|
|
|
En Access, ¿Cómo actualizar automáticamente lectura a archivo?
Bases de Datos
|
skan
|
0
|
2,057
|
21 Agosto 2014, 21:01 pm
por skan
|
|
|
Actualizar los Drivers del PC automaticamente
Software
|
Arcade002
|
4
|
1,436
|
2 Julio 2017, 19:25 pm
por darioxlz
|
|
|
MOVIDO: Actualizar los Drivers del PC automaticamente
Software
|
Eleкtro
|
0
|
1,309
|
24 Abril 2017, 13:39 pm
por Eleкtro
|
|