Me salió GatorV, gracias por la ayuda.
Dejo el código, quizas a alguien le sirve en el futuro.
Código PHP:
<?php session_start();
include("../../clases/class_trabajos.php");
class Contenido extends Pagina
{
function realizarCambios($array,$seccion,$seccionID)
{
//Recupero todos los campos de los checkbox (marcados y no marcados)
$consulta= mysql_query("SELECT $seccionID FROM $seccion
WHERE Subidopor ='1'");
//cantidad de resultados
$cantidad = mysql_num_rows($consulta);
//guardo todos los valores en un array
for($i=0;$i<$cantidad;$i++)
{
$arrayseccion = mysql_fetch_array($consulta);
$valor = $arrayseccion[$seccionID];
$guardoArray[$i] = $valor;
}
// si estan setiado los 2 arrays obtengo los nos marcados y hago el update...
if((isset($guardoArray)) && (isset($_POST[$array])))
{
$array_nomarcados = array_diff($guardoArray,$_POST[$array]);
if (isset($array_nomarcados))
{
foreach ($array_nomarcados as $cambio)
{
if ($cambio != "")
$consulta = mysql_query("UPDATE $seccion SET Ficha='0' WHERE $seccionID = $cambio");
}
}
}
// si no esta esta seteado el array del POST quiere decir que todos los campos estan desmarcados, por lo tantos el UPDATE es para todos 0
elseif(isset($guardoArray))
{
$consulta = mysql_query("UPDATE $seccion SET Ficha='0'");
}
// obtengo los marcados y hago el update
if (isset($_POST[$array]))
{
foreach ($_POST[$array] as $cambio)
{
if ($cambio != "")
$consulta = mysql_query("UPDATE $seccion SET Ficha='1' WHERE $seccionID = $cambio");
}
}
}
function MostrarCuerpo()
{
if (!$this -> DB_Connect())
return "No ha podido ser ingresado en la Base de Datos, por favor intentalo mas tarde.";
$this->realizarCambios("tema","temas","TemaID");
$this->realizarCambios("instrumental","instrumentales","InstrumentalID");
$this->realizarCambios("video","videos","VideoID");
$this->realizarCambios("letra","letras","LetraID");
mysql_close();
}
}
$pagina = new Contenido();
$pagina -> SetTitulo(" - Mis trabajos");
$pagina -> MostrarPagina();
?>