Cita:  
					Iniciado por Briss 
  Agregue esto...
foreach($clases as $clase){
		$q_clase = quoted($clase);
 
		{
	    $consulta =  "SELECT requisito FROM materia WHERE requisito =$q_clase";
 
	    if (mysql_num_rows($consulta)) {
	        $resultado =mysql_query($consulta, $conexion) or die(mysql_error());
	        $requisitos[] = $resultado["requisito"];
        mysql_free_result($resultado);
	    }        
	} 
pero me arrojo este error Warning: mysql_num_rows(): supplied argument is not a valid MySQL
    Eso sucede porque primero quieres averiguar cuántos registros te da la consulta y 
DESPUÉS la ejecutas. ¿No debería ser al revés?. 
Por otro lado, esto no tiene sentido:    
Código PHP:
Ver originalforeach($clases as $clase){
$q_clase = quoted($clase);
 
{
 
$listaMaterias="('".implode("','",$q_clase)."')"; $consulta = mysql_query($conexion, "SELECT requisito FROM materias WHERE materia in $q_clase and (requisito IS NOT NULL and requisito NOT IN $q_clase)");  
}
  
Primero, asignas un valor a 
$q_clase pero luego lo conviertes en array ¿?, luego, no sé de dónde vendrán esas llaves de apertura y cerrado que, al menos en lo que muestras de código, no van. Además, con 
quoted, colocas el dato entrecomillas, pero luego le vuelves a poner comillas en el 
implode. 
Debería ser así:    
Código PHP:
Ver original$listaMaterias="('".implode("','", $clases)."')"; $consulta = mysqli_query($conexion, "SELECT requisito FROM materias WHERE materia in $listaMaterias and (requisito IS NOT NULL and requisito NOT IN $listaMaterias)"); 
  
Y con eso nos olvidamos de los bucles, que pueden ser muy útiles, pero como dije, no son eficientes (utilización de recursos). 
Saludos