Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Ajustar codigo

Estas en el tema de Ajustar codigo en el foro de PHP en Foros del Web. Gracias la cambie y quedo asi Código PHP: foreach( $clases  as  $clase )          $q_clase  =  quoted ( $clase );          $listaMaterias = "('" . ...

  #31 (permalink)  
Antiguo 13/01/2014, 16:29
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Gracias la cambie y quedo asi
Código PHP:
foreach($clases as $clase)
        
$q_clase quoted($clase);
        
$listaMaterias="('".implode("','"$clases)."')";
        echo 
$listaMaterias;{
        
$consulta =  "SELECT r.nombre,r.id_materia,m.nombre,m.id_materia  FROM materia m LEFT JOIN materia r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias AND (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";
        
$resultado = @mysql_query($consulta$conexion) or die(mysql_error());
        
    }

$query_clase "SELECT r.nombre,r.id_materia,m.nombre,m.id_materia  FROM materia m LEFT JOIN materia r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias AND (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";

$result_clase = @mysql_query($query_clase$conexion) or die(mysql_error());
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
            
while ($clase mysql_fetch_array($result_clase)) {
echo
    
"<tr>
        <td>"
.$clase["CLAVE"]."></td>
        <td>"
.$clase["NOMBRE"]."></td>
    </tr>"
;

}  

        }else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        } 

pero me arroja -----
('aaa','bbb')
Clave Profesor
Materia Grupo ...
No seleccionó materias

e imprimo el array para ver si pasan lños ID y si solo q no encuentro porque no arroja resultados la consulta
  #32 (permalink)  
Antiguo 13/01/2014, 16:41
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

¿Y que resultados arroja la misma consulta en phpMyadmin con datos reales en lugar de las variables?
__________________
«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
  #33 (permalink)  
Antiguo 13/01/2014, 17:07
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y que resultados arroja la misma consulta en phpMyadmin con datos reales en lugar de las variables?
MySQL ha devuelto un valor vacío (i.e., cero columnas). (La consulta tardó 0.0003 seg)

Con este codigo

Código PHP:
SELECT r.NOMBREr.ID_MATERIAm.NOMBREm.ID_MATERIA
FROM materia m
LEFT JOIN materia r ON m
.REQUISITO r.ID_MATERIA
WHERE m
.ID_MATERIA
IN 
(
'aaa',  'bbb'
)
AND (
r.ID_MATERIA IS NOT NULL 
AND r.ID_MATERIA NOT 
IN 
(
'aaa',  'bbb'
)


Pero si modifico aca...

Código PHP:
SELECT r.NOMBREr.ID_MATERIAm.NOMBREm.ID_MATERIA
FROM materia2 m
LEFT JOIN materia2 r ON m
.REQUISITO r.ID_MATERIA
WHERE m
.ID_MATERIA
IN 
(
'aaa',  'bbb'
)
AND (
r.ID_MATERIA IS NOT NULL 
AND r.ID_MATERIA NOT 
IN 
(
'[COLOR="Red"][B]a[/B][/COLOR]',  'bbb'
)


Me arrojo ya el listado de materias
NOMBRE ID_MATERIA NOMBRE ID_MATERIA
Matematicas aaa Calculo bbb


aca esta el detalle AND (
r.ID_MATERIA IS NOT NULL
AND r.ID_MATERIA NOT
IN (
'ACA', 'bbb'
)
  #34 (permalink)  
Antiguo 13/01/2014, 17:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

puse la consulta en mi form
Código PHP:
$query_clase "SELECT r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
FROM materia2 m 
LEFT JOIN materia2 r ON m.REQUISITO = r.ID_MATERIA 
WHERE m.ID_MATERIA 
IN ( 
'aaa',  'bbb' 

AND ( 
r.ID_MATERIA IS NOT NULL  
AND r.ID_MATERIA  
IN ( 
'aaa',  'bbb' 

) "
;

$result_clase = @mysql_query($query_clase$conexion) or die(mysql_error());
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
            
while ($clase mysql_fetch_array($result_clase)) {
echo
    
"<tr>
        <td>"
.$clase["CLAVE"]."></td>
        <td>"
.$clase["NOMBRE"]."></td>
    </tr>"
;

}  

Pero solo mostro Calculo :/
  #35 (permalink)  
Antiguo 13/01/2014, 18:27
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

ACA ESTA MI CODIGO FINAL... AHORA SI MUESTRA LO QUE SELECCIONO PREVIAMENTE...

Código PHP:
<?php
    
include 'globals.php';
    
    
session_start();
    
    
$id_alumno $_SESSION['owner_session_id'];
    
$q_id_alumno quoted($id_alumno);
    
    if(!isset(
$_POST['clases'])){
        
header("Location: show_oferta_academica.php");
    }
    
    
$clases $_POST['clases'];
    
    
encabezado("Comprobar carga");
    
navegacion();
    
    
$conexion solicitarConexion();
    
    
$errores = array();
    
$creditos_totales 0;
    
$horas_teoria_totales 0;
    
$horas_practica_totales 0;
    
    echo 
"<table>
            <tr>
                <td>Clave</td>
                <td>Profesor<br>Materia</td>
                <td>Grupo</td>
                <td>Horas Teoria</td>
                <td>Horas Practica</td>
                <td>Créditos</td>
            </tr>"
;

    foreach(
$clases as $clase)
        
$q_clase quoted($clase);
        
$listaMaterias="('".implode("','"$clases)."')";
        echo 
$listaMaterias;{
        
$consulta =  "SELECT r.NOMBRE,r.id_materia,m.NOMBRE,m.id_materia  FROM materia2 m LEFT JOIN materia2 r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias AND (r.id_materia IS NOT NULL AND r.id_materia IN $listaMaterias)";
        
$resultado = @mysql_query($consulta$conexion) or die(mysql_error());
          
    }

$query_clase "
SELECT m.NOMBRE,m.id_materia  FROM materia2 m  WHERE m.id_materia IN $listaMaterias"
;

$result_clase = @mysql_query($query_clase$conexion) or die(mysql_error());
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
            
while ($clase mysql_fetch_array($result_clase)) {
echo
    
"<tr>
        <td>"
.$clase["CLAVE"]."</td>
        <td>"
.$clase["NOMBRE"]."</td>
    </tr>"
;

}  


        else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }

    echo 
"";
    
#Ofrecer inscripción o corregir    
    
foreach($errores as $clase_clave => $error){
        echo 
"<tr>
                <td>$clase_clave</td>
                <td colspan=5>$error</td>
            </tr>"
;
    }
        
    if(
count($errores) == 0){ #No hay errores
        
        
echo "<tr><td colspan=6><form name=\"operacion\" method=\"post\" action=\"registrar_carga.php\">";
        
#Si quisiese enviarlos por post, tendria que hacer este truco
        
foreach($clases as $clase){
            echo 
"<input type=\"hidden\" value=\"$clase\" name=\"clases[]\">";
        }
        echo 
"<input type=\"hidden\" value=\"$horas_teoria_totales\" name=\"total_teoria\">
            <input type=\"hidden\" value=\"$horas_practica_totales\" name=\"total_practica\">
            <input type=\"hidden\" value=\"$creditos_totales\" name=\"total_practica\">"
;
        echo 
"<input type=\"submit\" value=\"Inscribir\"></form></td></tr>";
    }else{
        
#Deprecated No se pueden enviar un arreglo.
        
echo "<tr><td colspan=6><form name=\"operacion\" method=\"post\" action=\"show_oferta_academica.php\">
            <input type=\"hidden\" value=\"$errores\" name=\"errores\">
            <input type=\"submit\" value=\"Corregir\"></form></td></tr>"
;
    }
                
    echo 
"";
    
    
#Fin de tabla
    
echo "</table>";
    
    
piePagina();
?>
PERO si elijo una materia una sola q tiene requisito ejemplo taller II manda el boton Inscribir... aqui deberia bloquear...


si elijo varias manda a inscribir... esta bien siempre y cuando seleccione la materia y su requisito....




Última edición por Briss; 13/01/2014 a las 18:30 Razón: error de archivo
  #36 (permalink)  
Antiguo 13/01/2014, 18:41
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Codigo final... asi muestra lo q selecciono pero siempre manda a inscribir... aun si selecciono una materia sin su requisito... ejemplo taller de lectura II

Código PHP:
foreach($clases as $clase)
        
$q_clase quoted($clase);
        
$listaMaterias="('".implode("','"$clases)."')";
        echo 
$listaMaterias;{
        
$consulta =  "SELECT r.NOMBRE,r.id_materia,m.NOMBRE,m.id_materia  FROM materia2 m LEFT JOIN materia2 r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias AND (r.id_materia IS NOT NULL AND r.id_materia  NOT IN $listaMaterias)";
        
$resultado = @mysql_query($consulta$conexion) or die(mysql_error());
          
    }

$query_clase "SELECT m.NOMBRE,m.id_materia  FROM materia2 m  WHERE m.id_materia IN $listaMaterias";

$result_clase = @mysql_query($query_clase$conexion) or die(mysql_error());
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
            
while ($clase mysql_fetch_array($resultado)) {
echo
    
"<tr>
        <td>"
.$clase["CLAVE"]."</td>
        <td>"
.$clase["NOMBRE"]."</td>
    </tr>"
;

}  


        else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }

    echo 
"";
    
#Ofrecer inscripción o corregir    
    
foreach($errores as $clase_clave => $error){
        echo 
"<tr>
                <td>$clase_clave</td>
                <td colspan=5>$error</td>
            </tr>"
;
    }
        
    if(
count($errores) == 0){ #No hay errores
        
        
echo "<tr><td colspan=6><form name=\"operacion\" method=\"post\" action=\"registrar_carga.php\">";
        
#Si quisiese enviarlos por post, tendria que hacer este truco
        
foreach($clases as $clase){
            echo 
"<input type=\"hidden\" value=\"$clase\" name=\"clases[]\">";
        }
        echo 
"<input type=\"hidden\" value=\"$horas_teoria_totales\" name=\"total_teoria\">
            <input type=\"hidden\" value=\"$horas_practica_totales\" name=\"total_practica\">
            <input type=\"hidden\" value=\"$creditos_totales\" name=\"total_practica\">"
;
        echo 
"<input type=\"submit\" value=\"Inscribir\"></form></td></tr>";
    }else{
        
#Deprecated No se pueden enviar un arreglo.
        
echo "<tr><td colspan=6><form name=\"operacion\" method=\"post\" action=\"show_oferta_academica.php\">
            <input type=\"hidden\" value=\"$errores\" name=\"errores\">
            <input type=\"submit\" value=\"Corregir\"></form></td></tr>"
;
    }
                
    echo 
"";
    
    
#Fin de tabla
    
echo "</table>"
  #37 (permalink)  
Antiguo 13/01/2014, 19:11
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Y que resultados arroja la misma consulta en phpMyadmin con datos reales en lugar de las variables?
Hola Alexis mira hice esto
foreach($clases as $clase)
$q_clase = quoted($clase);
$listaMaterias="('".implode("','", $clases)."')";
echo $listaMaterias;{
$consulta = "SELECT r.NOMBRE,r.id_materia,m.NOMBRE,m.id_materia FROM materia2 m LEFT JOIN materia2 r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias";/* AND (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";*/

con lo que comente ente /* */ salen las materias que selecciono previamente...
pero no lo gro hacer lo que quiero... tengo registradas matematicas... calculo... taller I y Taller II.... deberia hacer lo siguiente
si selecciono taller I y II debe dejar inscribirme mostrar boton... ya que es la materia y su requisito... lo mismo si selecciono mate y calculo...

en cambio si selecciono taller Ii DEBE BLOQUEARLO... LO mismo para Calculo... o al seleccionar calculo y taller I O II debe bloquearlo....

este es mi codigo ya mas limpio


Código PHP:
echo "<table>
            <tr>
                <td>Clave</td>
                <td>Materia</td>
                
            </tr>"
;

    foreach(
$clases as $clase)
        
$q_clase quoted($clase);
        
$listaMaterias="('".implode("','"$clases)."')";
        echo 
$listaMaterias;{
        
$consulta =  "SELECT r.NOMBRE,r.id_materia,m.NOMBRE,m.id_materia  FROM materia2 m LEFT JOIN materia2 r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias";/* AND (r.id_materia IS NOT NULL AND r.id_materia  NOT IN $listaMaterias)";*/
        
        
        
$resultado = @mysql_query($consulta$conexion) or die(mysql_error());
          
    }



    

$filas mysql_num_rows($resultado);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
                        
while ($clase mysql_fetch_array($resultado)) {
echo
    
"<tr>
        <td>"
.$clase["CLAVE"]."</td>
        <td>"
.$clase["NOMBRE"]."</td>
    </tr>"
;

}  


        else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }

    
    }
        
    
                
    echo 
"";
    
    
#Fin de tabla
    
echo "</table>"
  #38 (permalink)  
Antiguo 13/01/2014, 19:16
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Eso sucede porque estás pasándole al formulario las asignaturas contenidas en el array $clases, el cual contiene las clases que originalmente se habían seleccionado. La idea es que hagas un filtrado, de tal modo que las asignaturas en las que deba de inscribirse la persona, sean asignadas a un nuevo array y luego es que utilizarás ese nuevo array para asignar las asignaturas filtradas al formulario. En dicho filtrado, las asignaturas en las que la persona no se deba inscribir, no serán tomadas en cuenta.

En dicho filtrado, podrías añadir las asignaturas en las que la persona no se deba inscribir a otro array, al final puedes imprimir dichas asignaturas y le indicas al usuario que no se pudo inscribir en dichas asignaturas porque no le está permitido hacerlo.
__________________
«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
  #39 (permalink)  
Antiguo 13/01/2014, 19:22
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
Eso sucede porque estás pasándole al formulario las asignaturas contenidas en el array $clases, el cual contiene las clases que originalmente se habían seleccionado. La idea es que hagas un filtrado, de tal modo que las asignaturas en las que deba de inscribirse la persona, sean asignadas a un nuevo array y luego es que utilizarás ese nuevo array para asignar las asignaturas filtradas al formulario. En dicho filtrado, las asignaturas en las que la persona no se deba inscribir, no serán tomadas en cuenta.

En dicho filtrado, podrías añadir las asignaturas en las que la persona no se deba inscribir a otro array, al final puedes imprimir dichas asignaturas y le indicas al usuario que no se pudo inscribir en dichas asignaturas porque no le está permitido hacerlo.
Pero mira si selecciono varias materias y no puedo checar que tengan su requisito en caso de q este sea diferente a 'ninguno'... si aparece la materia y su requisito mostrar inscribirse... en otro caso bloquear.... lo malo es q no encuentro como "checar que el requisito y la materia hallan sido seleccionadas..."


si aca tengo las q seleccione previamente
foreach($clases as $clase)
$q_clase = quoted($clase);
$listaMaterias="('".implode("','", $clases)."')";
echo $listaMaterias;{
$consulta = "SELECT r.NOMBRE,r.id_materia,m.NOMBRE,m.id_materia FROM materia2 m LEFT JOIN materia2 r ON m.requisito=r.id_materia WHERE m.id_materia IN $listaMaterias";/* AND (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";*/ si omito /**/ porque no muestra nada????
  #40 (permalink)  
Antiguo 13/01/2014, 20:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Con la consulta que te dio dashtrash, deberías poder seleccionar a las asignaturas que hayan sido seleccionadas por el usuario y que sean requisito de alguna de las asignaturas en la lista. Ya con estos datos, puedes saber qué asignaturas y requisitos han sido seleccionados y podrás hacer la restricción que deseas.
__________________
«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
  #41 (permalink)  
Antiguo 14/01/2014, 10:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

he hecho los cambio y he ingresado mi conculta
SELECT r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA
FROM materia2 m
LEFT JOIN materia2 r ON m.REQUISITO = r.ID_MATERIA
WHERE m.ID_MATERIA
IN (
'aaa', 'bbb', 'ccc', 'ddd'
)
AND (
r.ID_MATERIA IS NOT NULL
AND r.ID_MATERIA
IN (
'aaa', 'bbb', 'ccc', 'ddd'
)
)


desde phpmyadmin...

si me arroja resultados pero al ejecutarla en mi codigo no muestra nada ...
mi codigo esta asi

Código PHP:
foreach ($_POST["clases"] as $clase) {
    
$q_clase quoted($clase);
    echo 
$q_clase;
        
$consulta="SELECT r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA
FROM materia2 m
LEFT JOIN materia2 r ON m.REQUISITO = r.ID_MATERIA
WHERE m.ID_MATERIA
IN (
'aaa',  'bbb',  'ccc',  'ddd'
)
AND (
r.ID_MATERIA IS NOT NULL 
AND r.ID_MATERIA
IN (
'aaa',  'bbb',  'ccc',  'ddd'
)
)"
;
        
$consulta2 = @mysql_query($consulta$conexion) or die(mysql_error());
        if (
mysql_num_rows($consulta2)) {
            
$resultado mysql_fetch_array($consulta2);
            
$requisitos[] = $resultado["REQUISITO"];
           
        }        
    }
    for (
$i 0$limite count($materias_elegidas); $i $limite$i++) {
        
$clave array_search($materias_elegidas[$i], $requisitos);
    if (
$clave !== FALSE
        echo 
$requisitos[$clave] . " es un curso requisito de " $materias_elegidas[$i];
    } 
  #42 (permalink)  
Antiguo 14/01/2014, 11:07
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

¿Te das cuenta que estás intentando iterar $materias_elegidas?, no veo que exista esa variable, creo que deberías iterar a $_POST["clases"]. En la primera parte, tomas los cursos requisito, los almacenas en un array pero no haces nada más, por eso es que no se muestra algo. Te sugiero que intentes con la forma que te indicó dashtrash, luego almacenas los cursos requisito y ya con eso, puedes hacer lo que desees.
__________________
«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
  #43 (permalink)  
Antiguo 14/01/2014, 11:20
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
¿Te das cuenta que estás intentando iterar $materias_elegidas?, no veo que exista esa variable, creo que deberías iterar a $_POST["clases"]. En la primera parte, tomas los cursos requisito, los almacenas en un array pero no haces nada más, por eso es que no se muestra algo. Te sugiero que intentes con la forma que te indicó dashtrash, luego almacenas los cursos requisito y ya con eso, puedes hacer lo que desees.
Estoy completmente enrededa jejejeje ya puse $clase ... y si estoy tomando la idea de dashtrash.... ahora en esto En la primera parte, tomas los cursos requisito, los almacenas en un array pero no haces nada más... aca como podría comparar q los seleccionados estan o no en el array requisitos????

Asi esta mi codigo pero si hasta ahora no muestra nada

Código PHP:
foreach ($_POST["clases"] as $clase) { 
    
$q_clase quoted($clase); 
    echo 
$q_clase
        
$consulta="SELECT r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
FROM materia2 m 
LEFT JOIN materia2 r ON m.REQUISITO = r.ID_MATERIA 
WHERE m.ID_MATERIA 
IN ( 
'aaa',  'bbb',  'ccc',  'ddd' 

AND ( 
r.ID_MATERIA IS NOT NULL  
AND r.ID_MATERIA 
IN ( 
'aaa',  'bbb',  'ccc',  'ddd' 

)"

        
$consulta2 = @mysql_query($consulta$conexion) or die(mysql_error()); 
        if (
mysql_num_rows($consulta2)) { 
            
$resultado mysql_fetch_array($consulta2); 
            
$requisitos[] = $resultado["REQUISITO"]; 
            
        }         
    } 
    for (
$i 0$limite count($clase); $i $limite$i++) { 
        
$clave array_search($clase[$i], $requisitos); 
    if (
$clave !== FALSE)  
        echo 
$requisitos[$clave] . " es un curso requisito de " $q_clase[$i]; 
    } 
  #44 (permalink)  
Antiguo 14/01/2014, 12:06
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Y te sigues enredando.

La cuestión es simple:

Código PHP:
Ver original
  1. $materias_elegidas = $_POST["clases"];
  2. $listaMaterias = "('" . implode("','", $materias_elegidas) . "')";
  3.  
  4. $query="SELECT
  5.                 r.nombre, r.id_materia, m.nombre, m.id_materia
  6.         FROM
  7.                 materias m LEFT JOIN materias r
  8.         ON
  9.                 m.requisito = r.id_materia
  10.         WHERE
  11.                 m.id_materia IN $listaMaterias
  12.         AND
  13.                 (r.id_materia IS NOT NULL AND r.id_materia NOT IN $listaMaterias)";
  14. $consulta = mysqli_query($conexion, $query);
  15.  
  16. if (mysqli_num_rows($consulta)){
  17.     echo "Estas son las materias requisito encontradas en su selección: <br />";
  18.  
  19.     while ($row = mysqli_fetch_array($consulta))
  20.         echo $row["nombre"] .  "<br />";
  21. }

En lugar de imprimir los nombres de las materias requisito encontradas, puedes realizar las acciones que mejor creas convenientes.

Francamente, creo que no se debería poder llevar un curso si antes no se ha aprobado el curso requisito, es como si intentara llevar Matemática 4 y no haya aprobado Matemática 3, ¿cómo voy a poder entender el 4 si no entendí el 3?.
__________________
«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
  #45 (permalink)  
Antiguo 14/01/2014, 12:51
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Gracias por toda tu paciencia ....

mira hice la prueba
imprimiendo $materias_elegidas; y me muestra array ....
si seleciono por ejemplo taller II solamente
muestra
ArrayEstas son las materias requisito encontradas en su selección:
Taller de lectura II

Código PHP:
 $materias_elegidas $_POST["clases"];
    echo 
$materias_elegidas;
$listaMaterias "('" implode("','"$materias_elegidas) . "')";
 
$query="SELECT 
                r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
        FROM 
                materia2 m LEFT JOIN materia2 r 
        ON 
                m.REQUISITO = r.ID_MATERIA
        WHERE 
                m.ID_MATERIA IN $listaMaterias 
        AND 
                (r.ID_MATERIA IS NOT NULL AND r.ID_MATERIA NOT IN $listaMaterias)"
;

    
$consulta = @mysql_query($query$conexion) or die(mysql_error());
 
if (
mysql_num_rows($consulta)){
    echo 
"Estas son las materias requisito encontradas en su selección: <br />";
 
    while (
$row mysql_fetch_array($consulta))
        echo 
$row["NOMBRE"] .  "<br />";

  #46 (permalink)  
Antiguo 14/01/2014, 12:58
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

¿Por qué intentas imprimir $materias_elegidas de esa forma?, es un array, no se imprime como lo harías un dato simple. Al while ponle las llaves de apertura y cerrado (se me pasó).
__________________
«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
  #47 (permalink)  
Antiguo 14/01/2014, 13:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

imprimiendo
echo $listaMaterias;
y seleccionando dos materias

Array('bbb','ddd')Estas son las materias requisito encontradas en su selección:
Calculo
Taller de lectura II
Clave Materia



Aqui ya tendria los requisitos ya seria cuestion de ir "jugando para lograr el objetivo" nop??? osea dejar inscribir o bloquear sino se selecciono la materia y su requisito...

Una duda más porque ya no se utiliza el foreach... porque si lo deja duplica taller II
  #48 (permalink)  
Antiguo 14/01/2014, 13:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Amigo otra cosa... con esto obtengo cual es el requisito no encontrado en la seleccion.... eso esta perfecto... bien se me ocurre algo y espero me des tu punto de vista... puedo memer otra query ejemplo Select.... wher ID_MATERIA =$listaMaterias ... AQUI OBTENDRIA LAS SELECCIONADAS... osea se me ocurre arriba mostrar la materia q no se cumplio requisito con la query 1... y en otra tabla mostrar query2 (las seleccionadas.... pero aca no sé como omitir la que no cumplio con su requisito)... es decir menos la que mostro con la query 1..... ??????

Código PHP:
 $materias_elegidas $_POST["clases"];
    
    echo 
$materias_elegidas;
$listaMaterias "('" implode("','"$materias_elegidas) . "')";
 echo 
$listaMaterias;
$query="SELECT 
                r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
        FROM 
                materia2 m LEFT JOIN materia2 r 
        ON 
                m.REQUISITO = r.ID_MATERIA
        WHERE 
                m.ID_MATERIA IN $listaMaterias 
        AND 
                (r.ID_MATERIA IS NOT NULL AND r.ID_MATERIA NOT IN $listaMaterias)"
;

    
$consulta = @mysql_query($query$conexion) or die(mysql_error());
 
if (
mysql_num_rows($consulta)){
    echo 
"Estas son las materias requisito encontradas en su selección: <br />";
 
    while (
$row mysql_fetch_array($consulta))
        echo 
$row["NOMBRE"] .  "<br />";

  #49 (permalink)  
Antiguo 14/01/2014, 13:54
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Tengo este codigo y arroja esto
Estas son las materias requisito encontradas en su selección:
Taller de lectura II (resultado query uno)

Resultados query2
Nombre
Matematicas
Nombre
Calculo
Nombre
Taller de lectura II

ACA INTENTO que no salga taller II ya que ya salio en la primera query... por no tener seleccionado su requisito osea Taller I...... alguna idea GRACIAS NUEVAMENTE
[PHP]



Código PHP:
 $materias_elegidas $_POST["clases"];
    
    echo 
$materias_elegidas;
$listaMaterias "('" implode("','"$materias_elegidas) . "')";
 echo 
$listaMaterias;
$query="SELECT 
                r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
        FROM 
                materia2 m LEFT JOIN materia2 r 
        ON 
                m.REQUISITO = r.ID_MATERIA
        WHERE 
                m.ID_MATERIA IN $listaMaterias 
        AND 
                (r.ID_MATERIA IS NOT NULL AND r.ID_MATERIA NOT IN $listaMaterias)"
;

    
$consulta = @mysql_query($query$conexion) or die(mysql_error());
 
if (
mysql_num_rows($consulta)){
    echo 
"Estas son las materias requisito encontradas en su selección: <br />";
 
    while (
$row mysql_fetch_array($consulta))
     
        echo 
$row["NOMBRE"] .  "<br />";
        
}
    
    
    
/* DOS aca muestro las seleccionadas pero necesito que no muestre la que mostro con la primera query--- osea la q no cumplio el requisito (que no fue seleccionado.*/
    
foreach($clases as $clase){
        
$q_clase quoted($clase);


    
$query2="SELECT m.NOMBRE, m.ID_MATERIA 
        FROM 
                materia2 m 
              
        WHERE 
           
                m.ID_MATERIA=$q_clase;
       "
;

    
$consulta2 = @mysql_query($query2$conexion) or die(mysql_error());
    
$filas mysql_num_rows($consulta2);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
$clase mysql_fetch_array($consulta2);
            echo 
"<table>
            <tr>
                <td>Nombre</td>
                
            </tr>"
;
                    
            echo 
"<tr>
                    <td>"
.$clase['CLAVE']."</td>
                    <td>"
.$clase['NOMBRE']."</td>
                    
                </tr>"
;
        }else{
            echo 
"<tr><td colspan=6>No seleccionó materias</td></td></tr>";
        }    
                
                }    
    echo 
""
  #50 (permalink)  
Antiguo 14/01/2014, 14:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Ya no es necesario utilizar el constructor foreach porque con el implode, transformas el array en una cadena y como le insertas comas y comillas simples, queda lista para ser insertada en la consulta. No hagas esto: echo $materias_elegidas, así no se imprimen los valores de un array y no es necesario hacerlo en este caso.

Si quisieras verificar que alguno de los cursos tiene un requisito en la lista de cursos seleccionados, por ejemplo:

Cursos seleccionados:
- Mat3 (Requisito: Mat2) [Suponiendo que NO se aprobó Mat2]
- Len5 (Requisito: Len4) [Suponiendo que se aprobó Len4]
- Fis2 (Requisito: Fis1) [Suponiendo que se aprobó Fis1]
- Mat2 (Requisito: Mat1) [Suponiendo que se aprobó Mat1]

Código PHP:
Ver original
  1. $cursosSeleccionados = array(
  2.                                 array("Cur" => "Mat3", "Req" => "Mat2"),
  3.                                 array("Cur" => "Len5", "Req" => "Len4"),
  4.                                 array("Cur" => "Fis2", "Req" => "Fis1"),
  5.                                 array("Cur" => "Mat2", "Req" => "Mat1"),
  6.                             );
  7.                            
  8. foreach ($cursosSeleccionados as $curso){
  9.     $req = $curso["Cur"];
  10.     foreach ($cursosSeleccionados as $c){
  11.         if ($c["Req"] == $req){
  12.             echo $req . " es requisito de " . $c["Cur"];
  13.             break;
  14.         }
  15.     }
  16. }

Esto imprimiría lo siguiente:

Código HTML:
Ver original
  1. Mat2 es requisito de Mat3

De este modo, verificas curso por curso si alguno de ellos es requisito de otro que esté en lista. Ten en cuenta que también tendrás que verificar que se haya aprobado el curso requisito de uno que esté en lista y cuyo requisito no se encuentre en lista, por ejemplo, que se haya aprobado Len4 para poder llevar Len5, a pesar de que Len4 no está en lista.

Y antes de que me lo preguntes, los requisitos de los cursos los obtienes con la query que te dio dashtrash.

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
  #51 (permalink)  
Antiguo 14/01/2014, 15:30
Avatar de dashtrash
Colaborador
 
Fecha de Ingreso: abril-2007
Ubicación: Ni en Sevilla,ni en Sanlúcar..qué más da..
Mensajes: 927
Antigüedad: 17 años, 1 mes
Puntos: 270
Respuesta: Ajustar codigo

Cita:
Iniciado por Briss Ver Mensaje
si selecciono taller I y II debe dejar inscribirme mostrar boton... ya que es la materia y su requisito... lo mismo si selecciono mate y calculo...

en cambio si selecciono taller Ii DEBE BLOQUEARLO... LO mismo para Calculo... o al seleccionar calculo y taller I O II debe bloquearlo....
"Mostrar boton"? "Debe bloquearlo"? Si entiendo lo que quieres hacer, eso es javascript, no php.La lista de materias la metes en javascript como un json,objeto,array o como prefieras.Y asi, en principio,muestras un formulario donde el usuario sólo pueda, en principio, seleccionar asignaturas sin requisitos.A medida que haga selecciones, se le desbloquean aquellas asignaturas para las que ya ha seleccionado sus requisitos (y se deseleccionan automaticamente si deselecciona los requisitos).Pero todo eso se resuelve con js, no con php.
  #52 (permalink)  
Antiguo 14/01/2014, 16:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
Ya no es necesario utilizar el constructor foreach porque con el implode, transformas el array en una cadena y como le insertas comas y comillas simples, queda lista para ser insertada en la consulta. No hagas esto: echo $materias_elegidas, así no se imprimen los valores de un array y no es necesario hacerlo en este caso.

Si quisieras verificar que alguno de los cursos tiene un requisito en la lista de cursos seleccionados, por ejemplo:

Cursos seleccionados:
- Mat3 (Requisito: Mat2) [Suponiendo que NO se aprobó Mat2]
- Len5 (Requisito: Len4) [Suponiendo que se aprobó Len4]
- Fis2 (Requisito: Fis1) [Suponiendo que se aprobó Fis1]
- Mat2 (Requisito: Mat1) [Suponiendo que se aprobó Mat1]

Código PHP:
Ver original
  1. $cursosSeleccionados = array(
  2.                                 array("Cur" => "Mat3", "Req" => "Mat2"),
  3.                                 array("Cur" => "Len5", "Req" => "Len4"),
  4.                                 array("Cur" => "Fis2", "Req" => "Fis1"),
  5.                                 array("Cur" => "Mat2", "Req" => "Mat1"),
  6.                             );
  7.                            
  8. foreach ($cursosSeleccionados as $curso){
  9.     $req = $curso["Cur"];
  10.     foreach ($cursosSeleccionados as $c){
  11.         if ($c["Req"] == $req){
  12.             echo $req . " es requisito de " . $c["Cur"];
  13.             break;
  14.         }
  15.     }
  16. }

Esto imprimiría lo siguiente:

Código HTML:
Ver original
  1. Mat2 es requisito de Mat3

De este modo, verificas curso por curso si alguno de ellos es requisito de otro que esté en lista. Ten en cuenta que también tendrás que verificar que se haya aprobado el curso requisito de uno que esté en lista y cuyo requisito no se encuentre en lista, por ejemplo, que se haya aprobado Len4 para poder llevar Len5, a pesar de que Len4 no está en lista.

Y antes de que me lo preguntes, los requisitos de los cursos los obtienes con la query que te dio dashtrash.

Saludos
Gracias Alexis por los datos.... mira con esto
Código PHP:
 $listaMaterias "('" implode("','"$materias_elegidas) . "')";
 echo 
$listaMaterias;
$query="SELECT 
                r.NOMBRE, r.ID_MATERIA, m.NOMBRE, m.ID_MATERIA 
        FROM 
                materia2 m LEFT JOIN materia2 r 
        ON 
                m.REQUISITO = r.ID_MATERIA
        WHERE 
                m.ID_MATERIA IN $listaMaterias 
        AND 
                (r.ID_MATERIA IS NOT NULL AND r.ID_MATERIA NOT IN $listaMaterias)"
;

    
$consulta = @mysql_query($query$conexion) or die(mysql_error());
 
if (
mysql_num_rows($consulta)){
    echo 
"Estas son las materias requisito encontradas en su selección: <br />";
 
    while (
$row mysql_fetch_array($consulta))
     
        echo 
$row["NOMBRE"] .  "<br />";
        


Ya me arroja lo que quiero es decir si no se selecciono el requisito ... manda el mensaje... ahora intentaba hacer la otra consulta para ver los q selecciono el usuario.... por eso preguntaba... no hay una manera para comparar mis dos consultas.... y por ejemplo el valor en comun... se omita al mostrar mis datos de la segunda consulta.... es decir por ejemplo la primera me arrojo taller II... la segunda query muestra los que seleccione... por ejemplo matematizas y taller II... aca tendria que quitar taller II.... y si tienes razon en lo que dices tendria que checar con otra tabla en este caso calificaciones para que el requisito halla sido aprobado....
  #53 (permalink)  
Antiguo 14/01/2014, 19:26
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

La idea que propone dashtrash, es perfecta para lo que buscas. Preparas el formulario de tal forma que solamente aparezca una lista con las materias que pueda llevar, para ello, previamente haces un filtrado. En dicho filtrado, debes de tomar por referencia a los cursos que dicho usuario haya aprobado previamente, por ejemplo, para llevar Matemática 4, debe haber aprobado Matemática 3, por lo tanto, solamente debería aparecer Matemática 3 y no Matemática 4, sin embargo, si selecciona Matemática 3 en la inscripción, automáticamente se mostraría la opción para que también se matricule en Matemática 4. Ojo que esto te puede traer complicaciones si se trata de una cadena de cursos y requisitos, porque de ser así, un alumno que se matricula en Matemática 1, podría hacerlo en Matemática 2 y al matricularse en dicho curso, también podrá hacerlo en Matemática 3 y 4 y 5 y todas las que hayan, al final, llevará todos los cursos de la carrera en un semestre , a menos de que coloques una restricción para poder llevar un curso requisito y solamente un curso superior, pero creo que te complicarías más, por eso te sugiero que replantees la idea de esta forma de matrícula de cursos para que una persona solamente se pueda inscribir en un curso si y sólo si ha aprobado el respectivo curso requisito.

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
  #54 (permalink)  
Antiguo 15/01/2014, 11:10
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Ok creo que será mejor replantear con el cliente... tengo una pregunta más xD para hacer algo similar pero con pagos... suponiendo muestre una lista con las mensualidades ... si tengo
Enero
Febrero
Marzo
Abril.... por ejemplo

Enero no tiene un requisito...
Febrero tiene como requisito Enero...
Marzo tiene como requisito Febrero...
Abril tiene como requisito Marzo...

Y quiero hacer algo parecido... si el usuario selecciona varios pagos ...
Enero, Marzo... no se pueda realizar pago faltaría en la lista Febrero...
en cambio si selecciono Enero, Febrero, Marzo... pueda realizar los pagos

Tengo plateado manejar dos tablas... una mensualidad... aqui meto los meses y requisitos... y otras pagos realizados....

Pero antes de empezar a divagar jejeje espero me puedas dar tu opinion
  #55 (permalink)  
Antiguo 15/01/2014, 11:31
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Puedes hacer algo similar a como lo realiza el sistema de la universidad en donde estudio, dos formas para pagar: Mensual (mes a mes) o por ciclo universitario (un ciclo está compuesto por 5 meses). De de esta forma, el alumno tiene la posibilidad de pagar mes a mes (de forma consecutiva, sin saltarse) o pagar el ciclo completo, por lo cual se realiza un pequeño descuento. También se puede pagar por más de un mes sin necesidad de pagar por el ciclo entero, pero siempre de forma consecutiva, por ejemplo, el ciclo empezó el 1 de Marzo, entonces abarcará hasta el 31 de Julio (Todo Marzo, Abril, Mayo, Junio y Julio), pero yo quiero pagar por 3 meses, entonces ingreso el monto equivalente a 3 meses y el sistema automáticamente registra el pago por los meses de Marzo, Abril y Mayo que son los 3 primeros del ciclo en curso. Se utiliza una tabla y cuando se realiza el pago de un mes, cambia el valor del campo "estado" de "debe" a "pagado".

Como consejo final, debes de trabajar de una forma más ordenada, así te evitarías estos líos.

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
  #56 (permalink)  
Antiguo 15/01/2014, 11:58
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Cita:
Iniciado por Alexis88 Ver Mensaje
Puedes hacer algo similar a como lo realiza el sistema de la universidad en donde estudio, dos formas para pagar: Mensual (mes a mes) o por ciclo universitario (un ciclo está compuesto por 5 meses). De de esta forma, el alumno tiene la posibilidad de pagar mes a mes (de forma consecutiva, sin saltarse) o pagar el ciclo completo, por lo cual se realiza un pequeño descuento. También se puede pagar por más de un mes sin necesidad de pagar por el ciclo entero, pero siempre de forma consecutiva, por ejemplo, el ciclo empezó el 1 de Marzo, entonces abarcará hasta el 31 de Julio (Todo Marzo, Abril, Mayo, Junio y Julio), pero yo quiero pagar por 3 meses, entonces ingreso el monto equivalente a 3 meses y el sistema automáticamente registra el pago por los meses de Marzo, Abril y Mayo que son los 3 primeros del ciclo en curso. Se utiliza una tabla y cuando se realiza el pago de un mes, cambia el valor del campo "estado" de "debe" a "pagado".

Como consejo final, debes de trabajar de una forma más ordenada, así te evitarías estos líos.

Saludos
Ok gracias no se me había ocurrido esta forma de dos tipos de pago...
en esta parte que citas.... por ejemplo, el ciclo empezó el 1 de Marzo, entonces abarcará hasta el 31 de Julio (Todo Marzo, Abril, Mayo, Junio y Julio), pero yo quiero pagar por 3 meses, entonces ingreso el monto equivalente a 3 meses y el sistema automáticamente registra el pago por los meses de Marzo, Abril y Mayo que son los 3 primeros del ciclo en curso...

Yo tengo que ponerlos por Mes (esta información sale precargada por cada alumno)
es decir
Enero
Febrero
Marzo
Abril....

y de ahi selecciono q mes voy a cobrar por eso puedo o no marcar todos... el problema esta ahi los alumnos en el antiguo sistema...descargaban la ficha de Marzo y se saltaban Febrero (el alumno no ve la pantalla para seleccionar meses pero si descarga sus fichas de pago) entonces era un lio para los contadores pues... ya no les mostraba el porcentaje (aqui sube un % si no se pago el mes en la fecha limite) por la deuda de Febrero... .... entonces se me ocurre no se como veas... checar en tabla pagas realizados... y ver el mes en orden de pago y solo mostrar una ficha y si quieren pagar mas meses ir directo a la caja de la escuela.... como ves????
  #57 (permalink)  
Antiguo 15/01/2014, 12:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Ajustar codigo

Haz algo práctico, coloca tres opciones: Pagar mes actual, pagar varios meses (pero no todo el ciclo) y pagar todo el ciclo. Si el alumno elije "Pagar mes actual" y, por ejemplo, está en el primer mes del ciclo, el usuario ingresa la cantidad respectiva en una caja y luego de pulsar algún botón, se registrará el pago para Marzo y sólo para Marzo. Si elije "Pagar varios meses", suponiendo que se trata de un ciclo de 5 meses como en mi caso (también puede ser uno de más o menos meses), colocas un combo con opciones en donde cada una indicará la cantidad de meses a pagar, por ejemplo, en el combo estarán las opciones 1, 2, 3, y 4 (no puede estar la opción 5 ya que sería equivalente a pagar todo el ciclo y para eso hay otra opción), si quiere pagar de Marzo a Mayo (3 meses), debe seleccionar la opción 3 del combo, ingresa el monto el cual debe ser equivalente al pago de 3 meses y el sistema registra el pago de los 3 primeros meses. Por último, si elije la opción "Pagar todo el ciclo", únicamente aparecería una caja en la que ingresaría la cantidad, el sistema registrará el pago de los 5 meses del ciclo. Por cada mes pagado, el sistema elaborará una ficha en la que se mostrarán los detalles del pago, de este modo, todo esto se realizará de una manera más formal. En el caso de las dos primeras opciones, si el alumno olvidó pagar uno o más meses anteriores, serán dichos meses los que se registrarán como pagados y no el actual, hasta que se ponga al día en los pagos.

Creo que ya es momento de que des el tema por solucionado, hemos generado más mensajes de los que debieron ser necesarios para solucionar el tema inicial, el cual ya está solucionado. Si tienes otras dudas, con gusto te atenderé a través de mensajes privados.

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
  #58 (permalink)  
Antiguo 15/01/2014, 16:12
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 10 meses
Puntos: 12
Respuesta: Ajustar codigo

Tienes toda la razón jeje gracias Alexis Saludos :)

Etiquetas: formulario, mysql, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:30.