Ver Mensaje Individual
  #14 (permalink)  
Antiguo 09/01/2014, 14:33
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Ajustar codigo

Cita:
Iniciado por Briss Ver Mensaje
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 original
  1. foreach($clases as $clase){
  2. $q_clase = quoted($clase);
  3. $q_clase = array();
  4.  
  5. {
  6.  
  7. $listaMaterias="('".implode("','",$q_clase)."')";
  8. $consulta = mysql_query($conexion, "SELECT requisito FROM materias WHERE materia in $q_clase and (requisito IS NOT NULL and requisito NOT IN $q_clase)");
  9.  
  10. }

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
  1. $listaMaterias="('".implode("','", $clases)."')";
  2. $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
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 09/01/2014 a las 14:42