He creado una tabla nueva llamada beta_control_sesiones en la bd de Moodle. ¿Como podria hacer para insertar un registro nuevo cada vez que el usuario se logueara en la pagina?He hecho lo siguiente, pero soy supernovato y no se si esta bien. Cabe decir que lo he puesto al final del require_login() y que el registro es de prueba...
$USER->id_session = 111;
insert_record('control_sesiones', $USER);
P.D: Cuanto tiempo se necesita para comprender la programacion de Moodle?Porque PHP si que se pero es que me cuesta horrores comprender la logica de Moodle
Lo que hiciste no esta tan mal. La función insert_record espera como primer parametro el nombre de la tabla(sin el prefijo) y como segundo un objeto.
Nada más que el objeto tiene que tener como propiedades los nombres de las columnas de la tabla, y vos le estas pasando el objeto $USER que tiene un monton de propiedades.
Ej: tabla
id
username
last_login
$record = new object();
$record->username = $USER->username;
$record->last_login = date("d.m.y, g:i a");
if (!$id=insert_record('control_sesiones', $record)) {
error('Error');
}
Este es solo un ejemplo al vuelo, no quiere decir que el codigo funcione porque no lo probé.
Espero te sirva, saludos
Nada más que el objeto tiene que tener como propiedades los nombres de las columnas de la tabla, y vos le estas pasando el objeto $USER que tiene un monton de propiedades.
Ej: tabla
id
username
last_login
$record = new object();
$record->username = $USER->username;
$record->last_login = date("d.m.y, g:i a");
if (!$id=insert_record('control_sesiones', $record)) {
error('Error');
}
Este es solo un ejemplo al vuelo, no quiere decir que el codigo funcione porque no lo probé.
Espero te sirva, saludos
De momento he hecho la prueba con este campo en la tabla creada por mi...
$object= new object;
$object->id_session = 111;
if(!insert_record('control_sesiones', $object)){
error(get_string('inserterror' , 'control_sesiones'));
}
El codigo yo me creo que estara bien, pero lo que quiero hacer es que esta insercion me la haga justo en el momento de hacer Login, pero la implemento en la funciona require_login() y no me funciona...¿Donde la podria implementar para que se me ejecutase?
$object= new object;
$object->id_session = 111;
if(!insert_record('control_sesiones', $object)){
error(get_string('inserterror' , 'control_sesiones'));
}
El codigo yo me creo que estara bien, pero lo que quiero hacer es que esta insercion me la haga justo en el momento de hacer Login, pero la implemento en la funciona require_login() y no me funciona...¿Donde la podria implementar para que se me ejecutase?
Vale me sigue dando error al hacer el insert, pero no me especific mas que Inserterror...
Porque puede ser!!!
Porque puede ser!!!
fijate en /login/index.php
en principo despues de la condición
} else if ($frm) {
fijate si te sirve usar alguna de esas funciones para poner tu codigo.
La función require_login no te va a servir para lo que queres hacer porque se llama en la mayoria de las paginas y no te serviría de parámetro para registrar solo el login.
en el ejemplo que pusiste tu tabla deberia tener solo dos campos
id
id_session
chequea que eso sea asi....
en principo despues de la condición
} else if ($frm) {
fijate si te sirve usar alguna de esas funciones para poner tu codigo.
La función require_login no te va a servir para lo que queres hacer porque se llama en la mayoria de las paginas y no te serviría de parámetro para registrar solo el login.
en el ejemplo que pusiste tu tabla deberia tener solo dos campos
id
id_session
chequea que eso sea asi....
Este es el codigo que he puesto, pero me da un error en el Insert y no hace nada:
$object= new object;
$object->id_session = "111";
insert_record('control_sesiones', $object);
la tabla que he hecho de prueba es la siguiente.
$object= new object;
$object->id_session = "111";
insert_record('control_sesiones', $object);
la tabla que he hecho de prueba es la siguiente.
La verdad es que no me acuerdo 100% si era asi, pero me parece que tenes que tener si o si un primarykey que sea autoincremental
proba el codigo q me pasaste pero a la tabla agregale una columna llamada "id" que sea clave primaria autoincremental y proba si anda
proba el codigo q me pasaste pero a la tabla agregale una columna llamada "id" que sea clave primaria autoincremental y proba si anda
Gracias era que necesitaba un campo 'id' que fuese auto-incremental para funcionar el insert!!!!Joe lo que estoy aprendiendo gracias a moodle y a vosotros!!