Ver Mensaje Individual
  #5 (permalink)  
Antiguo 05/05/2008, 05:10
drkcid
 
Fecha de Ingreso: febrero-2008
Mensajes: 11
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Problema con onsulta "fantasma"

Bueno, primero gracias por las respuestas, segundo.... que no hay manera, pongo el codigo entero:

Cita:
function activarEncuesta($idEncuesta){

$datos = new conexionDB('encuestas');
$datos->conectar();
$datos->consultar('SELECT Activo FROM encuestas WHERE IDEncuesta = '.$idEncuesta.'');
$temp = mysql_fetch_row($datos->getQuery());
if($datos->resultados() > 0){ // el Id es bueno
if($temp[0] == "si"){ // esta es la encuesta activa y la desactivamos
$this->desactivarEncuesta($idEncuesta);
}elseif($temp[0] == "no") { // la encuesta no esta activa.
$datos->consultar('SELECT IDEncuesta FROM encuestas WHERE Activo = "si"');
$temp = mysql_fetch_row($datos->getQuery());
if($datos->resultados() == 0) { // no hay encuestas activas.
$conexion = new conexionDB('encuestas');
$conexion->conectar();
$conexion->consultar("UPDATE encuestas SET Activo = 'si' WHERE IDEncuesta = '$idEncuesta'");
if($conexion->actualizados() > 0){
include('./includes/mensajes/encuestaOK.php');
}else{
include('./includes/mensajes/ErrorBD.php');
}
}else{
include('./includes/mensajes/ErrEncuesta.php');
}
} // fin elseif
}else{ // error ID incorrecto
include('./includes/mensajes/ErrorBD.php');
}
}


function desactivarEncuesta($idEncuesta){

$conexion = new conexionDB('encuestas');
$conexion->conectar();
$conexion->consultar('UPDATE encuestas SET Activo = "no" WHERE IDEncuesta ="'.$idEncuesta.'"');
if($conexion->actualizados() == 0){
include('./includes/mensajes/ErrorDB.php');
}else{
include('./includes/mensajes/encuestaDes.php');
}
}
Bueno he cambiado el 'true' y 'false' por 'si' y 'no', aunque da igual como veis he provado de todo. Bueno algunas explicaciones sobre el código: conexionDB es una clase que hace las operaciones con la base de datos, las operaciones son conectar, consultar, etc, etc... Los include son mensajes de aviso.

Otra cosa, si comento todo el código excepto las tres primeras lineas, y en la primera consulta pongo la consulta del UPDATE, funciona. Pero claro, no puedo hacerlo asi poruqe tengo que comprobar antes algunas cosas. Tambien he probado a crear un objeto conexionDB para cada consulta y no ha funcionado.

Resumiendo: el $idEncuesta es correcto y se comprueba, el codigo de "UPDATE..." tambien es bueno, solo se conecta y se trabaja con la tabla encuestas de la BD. Asi que no se donde falla, quizas en cuanto se hace el primer SELECT ya no deja trabajar más con esa tabla.

Bueno un saludo