Error absurdo con el delete_records o_O ¿qué falla?

Error absurdo con el delete_records o_O ¿qué falla?

de Nadyare Pérez -
Número de respuestas: 5

Hola, me está pasando una cosa bastante absurda y no sé porqué. Tengo franjas temporales y al lado de cada una un link de acción, que responde al código:

$actions .= "[<a href=\"view.php?action=deleteslot&amp;id=$cm->id&amp;slotid=$slot->id\">".get_string('delete').'</a>]';

y luego tengo switch($action) {

y dentro tengo:

            case 'deleteslot':

                // Se borra la franja seleccionada
                if (!delete_records('interview_slots', 'id', $slotid)) {
                    error ('No se ha podido borrar');
                } else {
                    redirect("view.php?id=$cm->id",get_string('deleting','interview'));
                }

            break;

Pero luego la franja sigue ahí, no me la borra. Alguién sabe por qué?

Gracias!

Promedio de valoraciones: -
En respuesta a Nadyare Pérez

Re: Error absurdo con el delete_records o_O ¿qué falla?

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

¿Estás segura de que estás recibiendo un valor válido en $slotid? ¿Qué dicen los logs de consultas de la base de datos?

Saludos.

En respuesta a Iñaki Arenaza

Re: Error absurdo con el delete_records o_O ¿qué falla?

de Nadyare Pérez -

Es muy muy raro, porque en el pc del laboratorio donde estoy haciendo el proyecto funciona pero aquí en casa no, no lo entiendo.

El caso es que no me coge el $slotid, porque hago var_dump($slotid) y me da NULL pero en la barra de direcciones me pone:

...view.php?action=deleteslot&id=227&slotid=1

con lo que se ve que me pilla todo bien, pero no sé porque luego en la acción no:S:S

¿Por qué puede ser que en un pc si me lo pille bien y en el de mi casa no?

¿Tendré algo mal del PHP, MySQL o algo? porque los enlaces con acciones fallan todos pero el resto va bien, y llego al lab y funciona todo:S:S

En respuesta a Nadyare Pérez

Re: Error absurdo con el delete_records o_O ¿qué falla?

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

No tengo ni idea. ¿Cómo recoges los valores? ¿Con required_param() y optional_param()?

Saludos. Iñaki.

En respuesta a Iñaki Arenaza

Re: Error absurdo con el delete_records o_O ¿qué falla?

de Nadyare Pérez -

Era eso! por lo menos la acción de borrar ya me tira, tendré que probar con el resto pero supongo que irán bien. Es que yo no recogía los parámetros con nada, los pasaba con el enlace y nada más. Le puse un required_param y ya me borró la franja gran sonrisa

¿Qué diferencia hay entre el required y el optional_param? ¿Cuál es mejor utilizar para lo mío de los parámetros enviados a través de enlaces?

Gracias! y un saludo!

En respuesta a Nadyare Pérez

Re: Error absurdo con el delete_records o_O ¿qué falla?

de Iñaki Arenaza -
Imagen de Desarrolladores Imagen de Desarrolladores de plugins Imagen de Documentadores Imagen de Moderadores Imagen de Moodlers de gran ayuda

Si el dato tiene que estar presente (es obligatorio), entonces necesitas usar required_param(). Si no te lo pasan, esa función se encarga de mostrar el mensaje de error y todo el lío.

El optional_param() es para el caso complementario. Si te lo pasan, toma el valor que te envíen. Si no te lo pasan, se rellena con el valor por defecto que tienes que especificar en la llamada a optional_parama().

Los dos se usan por igual, tanto si van como parámetros en los enlaces (peticiones GET) como si son campos de formularios que te envían por GET o POST. Esas funciones se ocupan de los detalles sucios.

Saludos. Iñaki.