Consultas a la base de datos

Consultas a la base de datos

de Juan Linares -
Número de respuestas: 8
Hola, necesito hacer varias consultas a la base de datos, pero tengo un problema, una vez hago el SELECT, ¿cómo puedo recuperar los valores de esta consulta?

Gracias
Promedio de valoraciones: -
En respuesta a Juan Linares

Re: Consultas a la base de datos

de Juan Linares -
Hola, os pongo lo que he estado probando

$SQL = "SELECT id, name, description FROM {$CFG->prefix}assignment WHERE id='5' ";
 
$numrows = NumRows($SQL);
$row = FetchObject($numrows = true);
$description = $row -> description;

Lo que quiero es guardar el valor del campo description en una variable para poder utilizarla más tarde, he probado lo que he puesto arriba pero no funciona. ¿Alguien puede decirme que es lo que hago mal?
En respuesta a Juan Linares

Re: Consultas a la base de datos

de David Monllaó -
Buenas Juan,

Prueba a usar funciones como get_record, get_records, get_records_sql, get_field...

Podrías hacer $assignment = get_record_sql($sql);

En http://xref.moodle.org/_functions/index.html puedes encontrar los parámetros que necesitan todas estas funciones

Si la cantidad de datos donde buscar es muy grande igual te puede interesar esto
http://docs.moodle.org/en/Datalib_Notes
En respuesta a David Monllaó

Re: Consultas a la base de datos

de Juan Linares -
Hola David,

he estado probandop con el get_record_sql y mire en los diferente ficheros de moodle para ver como usaba estaba función. Total que lo he intentado de todas maneras pero sigo sin conseguirlo, dejo el trozo de código haber si puedes decirme donde cometo el error. La consulta funciona, porque la he probado en el phpMyadmin y me devuelve un registro, pero nose lo que puede fallar.

$questionnaire = get_record_sql('SELECT * FROM '.$CFG->prefix. 'questionnaire where summary='.$assignment);
$summary = $questionnaire -> summary;
echo $summary;

Lo que necesito es obtener el valor de $summary.

Muchas gracias
En respuesta a Juan Linares

Re: Consultas a la base de datos

de Xavier Paz -
¿tienes acceso a la variable global $CFG? a lo mejor es eso.
En respuesta a Xavier Paz

Re: Consultas a la base de datos

de Xavier Paz -
A lo mejor te convendría más usarla de esta forma

$questionnaire = get_record('questionnaire', 'summary', $assignment))
echo $questionnaire->summary;


Como quieres todos los campos del registro, no da problemas y te ahorras el tener que montar el SELECT. La primera línea dice, a groso modo, que obtenga de la tabla questionnaire, aquellos registros cuyo campo summary se corresponda con el valor que le pasas (en este caso, el valor que contiene $assignment)
En respuesta a Xavier Paz

Re: Consultas a la base de datos

de Juan Linares -
Gracias Xavier,

era lo que me decias de la variable $CFG, que no tenia acceso. Lo que hice fue sustituir en la consulta .$CFG->prefix. por mdl_

Saludos