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