<%@ $Language=JScript /* PARA COLORES PHP */ %> <% // ------------------------------------------------------------------------------------ // // Modulo Administrativo de encuestas // // ------------------------------------------------------------------------------------ // // Prototipo de las funciones definidas: // // ------------------------------------- // // function RGBaHTML($r,$g,$b) // // // // function encNuevaSeccion($nombreseccion) // // function encBorrarSeccion($idseccion) // // function encModificarSeccion($idseccion,$nuevonombre) // // function encObtenerSeccion($seccion) // // function encObtenerSecciones() // // // // function encNuevaEncuesta($idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo) // // function encBorrarEncuesta($idencuesta) // // function encModificarEncuesta($idencuesta,$idseccion,$nombre,$diaEnd,$mesEnd, // // $anioEnd,$activo) // // function encObtenerEncuesta($encuesta) // // function encObtenerEncuestas($seccion=0) // // // // function encNuevaPregunta($encuesta,$pregunta,$respuestamultiple,$prioridades) // // function encBorrarPregunta($idpregunta) // // function encModificarPregunta($idpregunta,$encuesta,$pregunta,$respuestamultiple, // // $prioridades) // // function encObtenerPregunta($pregunta) // // function encObtenerPreguntas($encuesta=0) // // // // function encNuevaRespuesta($pregunta,$respuesta,$tipo) // // function encBorrarRespuesta($idrespuesta) // // function encModificarRespuesta($idrespuesta,$pregunta,$respuesta,$tipo) // // function encObtenerRespuesta($respuesta) // // function encObtenerRespuestas($pregunta=0) // // ------------------------------------------------------------------------------------ // function RGBaHTML($r,$g,$b) { return sprintf("#%02X%02X%02X",$r,$g,$b); } function encNuevaSeccion($nombreseccion) { // ------------------------------------------------------------------------ // // encNuevaSeccion: // // - Esta funcion se encarga de dar de alta una nueva seccion. // // // // Parametros: // // - $nombreseccion: Justamente el nombre de la seccion. // // // // Retorna: // // - ID generado, -1 cuando sucedio un error. // // ------------------------------------------------------------------------ // global $conn; $sql = "insert into encSecciones (secNombre) values ('".addslashes($nombreseccion)."')"; $conn->execute($sql); $rs = $conn->execute("select secID from encSecciones where secNombre = '".addslashes($nombreseccion)."'"); if($rs->field("secID")) return $rs->field("secID"); else return -1; } function encBorrarSeccion($idseccion) { // ------------------------------------------------------------------------ // // encBorrrarSeccion: // // - Esta funcion se encarga de dar de baja una seccion y todos los // // elementos asociados a ella.(Encuestas,preguntas,respuestas,votos ) // // // // Parametros: // // - $idseccion: La seccion que se quiere dar de baja. // // // // Retorna: // // - nada. // // ------------------------------------------------------------------------ // global $conn; $e = encObtenerEncuestas($idseccion); for($i=0;$i<$e["Cant"];$i++) encBorrarEncuesta($e["Encuestas"][$i]["ID"]); $sql = "delete from encSecciones where secID = $idseccion"; $conn->execute($sql); //echo "Seccion:".$sql."
"; } function encModificarSeccion($idseccion,$nuevonombre) { // ------------------------------------------------------------------------ // // encModificarSeccion: // // - Esta funcion se encarga de modificar una seccion. // // // // Parametros: // // - $idseccion : La seccion a modificar. // // - $nuevonombre: El nuevo nombre de la seccion. // // // // Retorna: // // - nada. // // ------------------------------------------------------------------------ // global $conn; $sql = "update encSecciones set secNombre = '$nuevonombre' where secID = $idseccion"; $conn->execute($sql); return; } function encObtenerSeccion($seccion) { // ------------------------------------------------------------------------ // // encObtenerSeccion: // // - Esta funcion busca datos sobre las secciones. // // // // Parametros: // // - $seccion: El nombre o el ID de la seccion. // // // // Retorna: // // - ID o Nombre de seccion, -1 o "" cuando sucedio un error. // // ------------------------------------------------------------------------ // global $conn; if(is_numeric($seccion)) { // Supuestamente si es numerico debe ser porque es el id, asi que retornamos // el nombre. $rs = $conn->execute("select secNombre from encSecciones where secID = $seccion"); if($rs->field("secNombre")) return $rs->field("secNombre"); else return ""; }else { // Supuestamente si no es numerico es el texto, deberiamos retornarle el id, // aunque veo que es una posibilidad muy poco probable para usarla. $rs = $conn->execute("select secID from encSecciones where secNombre = '".addslashes($seccion)."'"); if($rs->field("secID")) return $rs->field("secID"); else return -1; } } function encObtenerSecciones() { // ------------------------------------------------------------------------ // // encObtenerSecciones: // // - Esta funcion busca todas las secciones. // // // // Parametros: // // - nada. // // // // Retorna: // // - Array con los datos. // // ------------------------------------------------------------------------ // global $conn; $rs = $conn->execute("select * from encSecciones"); $ret = array(); while(!$rs->eof) { $rs2 = $conn->execute("select count(*) as cantencuestas from encEncuestas where secID = ".$rs->field("secID")); array_push($ret, array("ID" => $rs->field("secID"), "Nombre" => $rs->field("secNombre"), "CantEncuestas" => $rs2->field("cantencuestas") ) ); $rs->movenext(); } return array("Cant"=>$rs->numrows,"Secciones"=>$ret); } function encNuevaEncuesta($idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo,$publica) { // ------------------------------------------------------------------------ // // encNuevaEncuesta: // // - Esta funcion se encarga de dar de alta una nueva encuesta. // // // // Parametros: // // - $idseccion: Seccion a la que pertenece. // // - $nombre : Nombre de la encuesta. // // - $diaEnd : Dia de finalizacion. // // - $mesEnd : Mes de finalizacion. // // - $anioEnd : Aņo de finalizacion. // // - $activo : El estado de la encuesta. // // // // Retorna: // // - ID generado, -1 cuando sucedio un error. // // // // Nota: // // La fecha se pasa en ese formato para que no dependa de el formato de // // la base de datos. Si la fecha no es valida retorna -1 // // ------------------------------------------------------------------------ // global $conn; if(($mesEnd==$diaEnd)&&($diaEnd==$anioEnd)&&($anioEnd==-1)) $fecha = "NULL"; elseif(!checkdate($mesEnd,$diaEnd,$anioEnd)) return -1; else $fecha = "$anioEnd-$mesEnd-$diaEnd"; $sql = "insert into encEncuestas ( secID, encNombre, encFechaAlta, encFechaFinalizacion,"; $sql .= "encActiva,encPublica) values ( $idseccion,'$nombre', NOW(),$fecha ,'$activo','$publica')"; $conn->execute($sql); // Obtenemos ahora el ID $rs = $conn->execute("select encID from encEncuestas where encNombre = '$nombre'"); if($rs->field("encID")) return $rs->field("encID"); else return -1; } function encBorrarEncuesta($idencuesta) { // ------------------------------------------------------------------------ // // encBorrarEncuesta: // // - Esta funcion se encarga de dar de baja una encuesta. // // // // Parametros: // // - $idencuesta : Encuesta a borrar. // // // // Retorna: // // - nada. // // // // ------------------------------------------------------------------------ // global $conn; $p = encObtenerPreguntas($idencuesta); for($i=0;$i<$p["Cant"];$i++) encBorrarPregunta($p["Preguntas"][$i]["ID"]); $sql = "delete from encEncuestas where encID = $idencuesta"; $conn->execute($sql); //echo "Encuesta:$sql
"; } function encModificarEncuesta($idencuesta,$idseccion,$nombre,$diaEnd,$mesEnd,$anioEnd,$activo,$publica) { // ------------------------------------------------------------------------ // // encModificarEncuesta: // // - Esta funcion se encarga de dar modificar los datos de una encuesta. // // // // Parametros: // // - $idencuesta: Encuesta a modificar. // // - $idseccion : Nueva Seccion. // // - $nombre : Nuevo Nombre. // // - $diaEnd : Nuevo Dia de finalizacion. // // - $mesEnd : Nuevo Mes de finalizacion. // // - $anioEnd : Nuevo Aņo de finalizacion. // // - $activo : Nuevo estado de la encuesta. // // // // Retorna: // // - nada. // // // // Nota: // // La fecha se pasa en ese formato para que no dependa de el formato de // // la base de datos. Si la fecha no es valida retorna -1 // // ------------------------------------------------------------------------ // global $conn; if(!checkdate($mesEnd,$diaEnd,$anioEnd)) return -1; $sql = "update encEncuestas set secID = $idseccion, encNombre = '$nombre', encFechaFinalizacion = '$anioEnd-$mesEnd-$diaEnd', "; $sql .= "encActiva='$activo', encPublica='$publica' where encID = $idencuesta"; $conn->execute($sql); return; } function encObtenerEncuesta($encuesta) { // ------------------------------------------------------------------------ // // encObtenerEncuesta: // // - Esta funcion busca datos sobre una encuesta. // // // // Parametros: // // - $encuesta: El nombre o el ID de la encuesta. // // // // Retorna: // // - Un array con los datos sobre la encuesta, -1 cuando sucedio un error. // // ------------------------------------------------------------------------ // global $conn; if(is_numeric($encuesta)) { // Supuestamente si es numerico debe ser porque es el id $rs = $conn->execute("select *, DAYOFMONTH(encFechaFinalizacion) as diaFin, MONTH(encFechaFinalizacion) as mesFin, YEAR(encFechaFinalizacion) as anioFin from encEncuestas where encID = $encuesta"); $rs2 = $conn->execute("select count(*) as cantpreg from encPreguntas where encID = $encuesta"); $ret = array("ID" => $rs->field("encID"), "Nombre" => $rs->field("encNombre"), "Activa" => $rs->field("encActiva"), "Publica" => $rs->field("encPublica"), "Seccion" => $rs->field("secID"), "CantVotos" => $rs->field("encCantVotos"), "CantPreguntas" => $rs2->field("cantpreg"), "diaFin" => $rs->field("diaFin"), "mesFin" => $rs->field("mesFin"), "anioFin" => $rs->field("anioFin")); return $ret; }else { // Supuestamente si no es numerico es el texto, deberiamos retornarle el id, // aunque veo que es una posibilidad muy poco probable para usarla. $rs = $conn->execute("select encID from encEncuestas where encNombre = '$encuesta'"); if($rs->field("encID")) return encObtenerEncuesta($rs->field("secID")); else return -1; } } function encObtenerEncuestas($seccion=0) { // ------------------------------------------------------------------------ // // encObtenerSecciones: // // - Esta funcion busca todas las secciones. // // // // Parametros: // // - $seccion: Si se incluye, solo trae encuestas de esa seccion. // // // // // Retorna: // // - Array con los datos. // // ------------------------------------------------------------------------ // global $conn; if($seccion) $rs = $conn->execute("select encID from encEncuestas where secID = $seccion"); else $rs = $conn->execute("select encID from encEncuestas"); $ret = array(); while(!$rs->eof) { array_push($ret,encObtenerEncuesta($rs->field("encID"))); $rs->movenext(); } return array("Cant"=>$rs->numrows,"Encuestas"=>$ret); } function encNuevaPregunta($encuesta,$pregunta,$respuestamultiple,$prioridades) { // ------------------------------------------------------------------------ // // encNuevaEncuesta: // // - Esta funcion se encarga de dar de alta una nueva pregunta para una // // encuesta. // // // // Parametros: // // - $encuesta : Encuesta a la que pertenece. // // - $pregunta : Pregunta. // // - $respuestasmultiples : Soporte para respuestas multiples (S/N). // // - $prioridades : Soporte para prioridades. // // // // Retorna: // // - ID generado, -1 cuando sucedio un error. // // // // ------------------------------------------------------------------------ // global $conn; $sql = "insert into encPreguntas (encID, prePregunta, preMultiplesRespuestas, prePrioridades)"; $sql .= " VALUES ($encuesta, '$pregunta', '$respuestamultiple', '$prioridades')"; $conn->execute($sql); // Obtenemos ahora el ID $rs = $conn->execute("select preID from encPreguntas where prePregunta = '$pregunta'"); if($rs->field("preID")) return $rs->field("preID"); else return -1; } function encBorrarPregunta($idpregunta) { // ------------------------------------------------------------------------ // // encBorrarPregunta: // // - Esta funcion se encarga de dar de baja una pregunta // // // // Parametros: // // - $ipregunta : Pregunta a borrar. // // // // Retorna: // // - nada. // // ------------------------------------------------------------------------ // global $conn; $r = encObtenerRespuestas($idpregunta); for($i=0;$i<$r["Cant"];$i++) encBorrarRespuesta($r["Respuestas"][$i]["ID"]); $sql = "delete from encPreguntas where preID = $idpregunta"; $conn->execute($sql); //echo "Pregunta:$sql
"; } function encModificarPregunta($idpregunta,$encuesta,$pregunta,$respuestamultiple,$prioridades) { // ------------------------------------------------------------------------ // // encModificarPregunta: // // - Esta funcion se encarga de modificar una pregunta // // // // Parametros: // // - $idpregunta : Id de la pregunta a modificar. // // - $encuesta : Nueva encuesta a la que pertenece. // // - $pregunta : Nuevo texto pregunta. // // - $respuestasmultiples : Soporte para respuestas multiples (S/N). // // - $prioridades : Soporte para prioridades. // // // // Retorna: // // - nada, -1 cuando sucedio un error. // // // // ------------------------------------------------------------------------ // global $conn; $sql = "update encPreguntas set encID = $encuesta, prePregunta='$pregunta', "; $sql .= "preMultiplesRespuestas = '$respuestamultiple', prePrioridades = '$prioridades' where preID = $idpregunta"; $conn->execute($sql); return; } function encObtenerPregunta($pregunta) { // ------------------------------------------------------------------------ // // encObtenerEncuesta: // // - Esta funcion busca datos sobre una pregunta. // // // // Parametros: // // - $pregunta: El nombre o el ID de la pregunta. // // // // Retorna: // // - Un array con los datos sobre la pregunta, -1 cuando sucedio un error. // // ------------------------------------------------------------------------ // global $conn; if(is_numeric($pregunta)) { // Supuestamente si es numerico debe ser porque es el id $rs = $conn->execute("select * from encPreguntas where preID = $pregunta"); $ret = array("ID" => $rs->field("preID"), "Pregunta" => $rs->field("prePregunta"), "Encuesta" => $rs->field("encID"), "MultiplesRespuestas" => $rs->field("preMultiplesRespuestas"), "Prioridades" => $rs->field("prePrioridades"), "CantRespuestas" => $rs->field("preCantRespuestas")); return $ret; }else { // Supuestamente si no es numerico es el texto, deberiamos retornarle el id, // aunque veo que es una posibilidad muy poco probable para usarla. $rs = $conn->execute("select preID from encPreguntas where prePregunta = '$pregunta'"); if($rs->field("preID")) return encObtenerEncuesta($rs->field("preID")); else return -1; } } function encObtenerPreguntas($encuesta=0) { // ------------------------------------------------------------------------ // // encObtenerPreguntas: // // - Esta funcion busca todas las preguntas. // // // // Parametros: // // - $encuesta: Si se incluye, solo trae preguntas de esta encuesta. // // // // // Retorna: // // - Array con los datos. // // ------------------------------------------------------------------------ // global $conn; if($encuesta) $rs = $conn->execute("select preID from encPreguntas where encID = $encuesta"); else $rs = $conn->execute("select preID from encPreguntas"); $ret = array(); while(!$rs->eof) { array_push($ret,encObtenerPregunta($rs->field("preID"))); $rs->movenext(); } return array("Cant"=>$rs->numrows,"Preguntas"=>$ret); } function encNuevaRespuesta($pregunta,$respuesta,$tipo) { // ------------------------------------------------------------------------ // // encNuevaRespuesta: // // - Esta funcion se encarga de dar de alta una nueva respuesta para una // // pregunta. // // // // Parametros: // // - $pregunta : pregunta a la cual pertenece. // // - $respuesta : Texto de la respuesta. // // - $tipo : Tipo de respuesta ( ABIERTA / NORMAL ) // // // // Retorna: // // - ID generado, -1 cuando sucedio un error. // // // // ------------------------------------------------------------------------ // global $conn; $sql = "insert into encRespuestas (preID, resRespuesta, resTipo) VALUES ($pregunta,'$respuesta', $tipo)"; $conn->execute($sql); $sql = " update encPreguntas set preCantRespuestas = preCantRespuestas + 1 where preID = $pregunta"; $conn->execute($sql); // Obtenemos ahora el ID $rs = $conn->execute("select resID from encRespuestas where resRespuesta = '$respuesta'"); if($rs->field("resID")) return $rs->field("resID"); else return -1; } function encBorrarRespuesta($idrespuesta) { // ------------------------------------------------------------------------ // // encBorrarRespuesta: // // - Esta funcion se encarga de dar de baja una respuesta // // // // Parametros: // // - $idrespuesta : Respuesta a eliminar. // // // // Retorna: // // - nada. // // // // ------------------------------------------------------------------------ // global $conn; $sql = "delete from encVotos where resID = $idrespuesta"; //echo "Respuesta:$sql
"; $conn->execute($sql); $rs = $conn->execute("select preID from encRespuestas where resID = $idrespuesta"); $preid = $rs->field("preID"); $sqlfinal = "update encPreguntas set preCantRespuestas = preCantRespuestas -1 where preID = $preid"; $sql = "delete from encRespuestas where resID = $idrespuesta"; //echo "Respuesta:$sql
"; $conn->execute($sql); $conn->execute($sqlfinal); } function encModificarRespuesta($idrespuesta,$pregunta,$respuesta,$tipo) { // ------------------------------------------------------------------------ // // encModificarRespuesta: // // - Esta funcion se encarga de modificar una respuesta // // // // Parametros: // // - $idrespuesta : Id de la respuesta a modificar. // // - $pregunta : id de la nueva pregunta. // // - $respuesta : Nuevo Texto de la respuesta. // // - $tipo : Nuevo tipo de respuesta ( ABIERTA / NORMAL ) // // // // Retorna: // // - Nada, -1 cuando sucedio un error. // // // // ------------------------------------------------------------------------ // global $conn; $sql = "update encRespuestas set preID = $pregunta, resRespuesta = '$respuesta', resTipo = $tipo where resID = $idrespuesta"; $conn->execute($sql); return; } function encObtenerRespuesta($respuesta) { // ------------------------------------------------------------------------ // // encObtenerRespuesta: // // - Esta funcion busca datos sobre una respuesta. // // // // Parametros: // // - $respuesta: El nombre o el ID de la respuesta // // // // Retorna: // // - Un array con los datos sobre la respuesta, -1 cuando sucedio un error. // // ------------------------------------------------------------------------ // global $conn; if(is_numeric($respuesta)) { // Supuestamente si es numerico debe ser porque es el id $rs = $conn->execute("select * from encRespuestas where resID = $respuesta"); $ret = array("ID" => $rs->field("resID"), "Respuesta" => $rs->field("resRespuesta"), "Pregunta" => $rs->field("preID"), "Tipo" => $rs->field("resTipo"), "TotalVotos" => $rs->field("resTotalVotos"), "TotalPrioridades" => $rs->field("resTotalPrioridades")); return $ret; }else { // Supuestamente si no es numerico es el texto, deberiamos retornarle el id, // aunque veo que es una posibilidad muy poco probable para usarla. $rs = $conn->execute("select resID from encRespuestas where resRespuesta = '$respuesta'"); if($rs->field("resID")) return encObtenerEncuesta($rs->field("resID")); else return -1; } } function encObtenerRespuestas($pregunta=0) { // ------------------------------------------------------------------------ // // encObtenerRespuestas: // // - Esta funcion busca todas las respuestas. // // // // Parametros: // // - $pregunta: Si se incluye, solo trae respuestas de esa pregunta. // // // // // Retorna: // // - Array con los datos. // // ------------------------------------------------------------------------ // global $conn; if($pregunta) $rs = $conn->execute("select resID from encRespuestas where preID = $pregunta order by resID"); else $rs = $conn->execute("select resID from encRespuestas"); $ret = array(); while(!$rs->eof) { array_push($ret,encObtenerRespuesta($rs->field("resID"))); $rs->movenext(); } return array("Cant"=>$rs->numrows,"Respuestas"=>$ret); } %>