PHP - consulta sql en switch

 
Vista:

consulta sql en switch

Publicado por Susana (16 intervenciones) el 27/03/2008 10:08:09
Hola,

estoy trabjando con mysql y php y estoy atascada desde hace dias con una aplicacion,tengo que sacar una tabla con los 10 ultimos movimientos de los usuarios(son alumnos que realizan cursos)tengo un campo llamado accion donde tengo un switch que depende de lo que sea pone una cosa u otra:

switch($registro["action"])

{
case "pre-view":
$ver="INDICE DEL CURSO";
echo "<td>".$ver."</td>";

break 1;

case "view":
if($registro["action"]=="view" and $registro["id"]=="1")
{
$vertema="PAGINA DE INICIO";
echo "<td>".$vertema."</td>";
}
elseif($registro["action"]=="view" and $registro["module"]=="resource")
{
$vertema="DESCARGANDO FICHERO";
echo "<td>".$vertema."</td>";
}
elseif($registro["action"]=="view" and $registro["module"]=="feedback")
{
$vertema="ENCUESTA";
echo "<td>".$vertema."</td>";
}
elseif($registro["action"]=="view" and $registro["module"]=="assignment")
{
$vertema="EJERCICIOS";
echo "<td>".$vertema."</td>";
}
elseif($registro["action"]=="view" and $registro["module"]=="quiz")
{
$vertema="EXAMEN";
echo "<td>".$vertema."</td>";
}

else
{
$vertema="TEMA";
echo "<td>".$vertema."</td>";
}
break 1;


case "logout":
$desc="PAGINA DE INICIO:
DESCONECTANDO";
echo "<td>".$desc."</td>";

break 1;

case "user report":
$informe="INFORME DE USUARIO";
echo "<td>".$informe."</td>";

break 1;
}

Hasta aqui bien porque esto me lo hace perfectamente,el problema es que tengo otro campo llamado module y necesito sacar con consultas sql datos para que me los ponga dependiendo tambien de este campo (nombre del tema,nombre del examen,nombre del ejercicio...) y tengo esto(pongo solo tres cases porque son un monton y nos eternizariamos:)):

switch($registro["module"])

{

case "course":

$nombre_curso="SELECT DISTINCT
`ocho_course`.`fullname`
FROM
`ocho_log`
Inner Join `ocho_user` ON `ocho_log`.`userid` = `ocho_user`.`id`
Inner Join `ocho_course` ON `ocho_course`.`id` = `ocho_log`.`course`
WHERE
`ocho_user`.`id`=".$registro["usuario"]." and
`ocho_course`.`id` <> 1";

$resultado=mysql_query($nombre_curso);

$curso=mysql_fetch_array($resultado);

echo "<td>".$curso["fullname"]."</td>";

break 1;

case "scorm":


$nombre_tema="SELECT DISTINCT
`ocho_scorm`.`name`
FROM
`ocho_log`
Inner Join `ocho_user` ON `ocho_log`.`userid` = `ocho_user`.`id`
Inner Join `ocho_course` ON `ocho_log`.`course` = `ocho_course`.`id`
Inner Join `ocho_scorm` ON `ocho_log`.`info` = `ocho_scorm`.`id` AND `ocho_scorm`.`course` = `ocho_course`.`id`
where
`ocho_user`.`id`=".$registro["usuario"]."
order by
`ocho_log`.`time` desc limit 1";

$result=mysql_query($nombre_tema);

$tema=mysql_fetch_array($result);

echo "<td>".$tema["name"]."</td>";

break 1;

case "quiz":


$nombre_examen="SELECT DISTINCT
`ocho_quiz`.`name`
FROM
`ocho_log`
Inner Join `ocho_user` ON `ocho_log`.`userid` = `ocho_user`.`id`
Inner Join `ocho_course` ON `ocho_log`.`course` = `ocho_course`.`id`
Inner Join `ocho_quiz` ON `ocho_course`.`id` = `ocho_quiz`.`course` AND `ocho_log`.`info` = `ocho_quiz`.`id`
where
`ocho_user`.`id`=".$registro["usuario"]."
order by
`ocho_log`.`time` desc limit 1";


$resulta=mysql_query($nombre_examen);

$examen=mysql_fetch_array($resulta);

echo "<td>".$examen["name"]."</td>";

break 1;

}

Todo esto lo tengo dentro de un while claro para que me vaya sacando los registros en una tabla pero solo me saca 3 registros o 1 dependiendo del alumno,se que es un poco lio,espero haberme explicado bien,me podriais ayudar??

Muchisimas gracias por adelantado:))
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:consulta sql en switch

Publicado por Susana (16 intervenciones) el 27/03/2008 16:58:13
Hola otra vez,

ya solucione el problema y la aplicacion me funciona perfectamente,la cuestion estaba en una cosa tan tonta como que me estaba machacando los resultados por tener el mismo nombre de variable al realizar la query,si es que el copiar y pegar es muy traicionero:)

Gracias de todas formas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar