Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Bloquear pago...

Estas en el tema de Bloquear pago... en el foro de PHP en Foros del Web. Estoy haciendo lo siguiente tengo un formulario donde elijo los meses que deseo pagar… seleccionándolos con un checkbox Este es el código 1.php Código PHP: ...
  #1 (permalink)  
Antiguo 17/12/2013, 12:42
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Exclamación Bloquear pago...

Estoy haciendo lo siguiente tengo un formulario donde elijo los meses que deseo pagar… seleccionándolos con un checkbox
Este es el código 1.php

Código PHP:
mysql_select_db($database_connection$connection);
$query_pagos=sprintf ("SELECT * FROM mensualidades  Where periodo=%s "GetSQLValueString($ID"text"));
pagos =  mysql_query($query_ pagos$connection) or die(mysql_error());
    echo 
"<h1>Meses</h1>";
    echo 
"<form method=\"post\" action=\"comprobar_pagos.php\" >
    <table>
    <tr>
    <td>Mes</td>
               <td></td>
    </tr>"
;

    
$filas mysql_num_rows($pagos);
    if(
$filas == 0){
        echo 
"<tr>
                <td colspan=6>No hay datos registrados.</td>
            </tr>"
;
    }else{
        while(
$pagos 2 mysql_fetch_array($pagos)){
            echo 
"<tr>
<td>"
.$ pagos 2['Mes']."</td>                    
<td><input type=\"checkbox\" name=\"clases[]\" value=\""
.$ pagos ['id_mensualidad']."\"></td>
            </tr>"
;
        }
        echo 
"<tr>
            <td>
            
<input type=\"submit\" value=\"Pagos realizados\">
            </td>
            </tr>"
;
    }
    
    echo 
"</table></form>";
?> 

Después de elegir los meses proceso otro archivo comprobar_pagos.php
Aquí muestro los meses elegidos… pero además de esto verifico que no tengan precedentes (meses previos obligatorios a pagar). Hasta acá voy bien… ejemplo si elijo Enero ,Febrero, Marzo…
Enero no tiene precedente …. Febrero si (Enero pero suponiendo que ya se pago no hay problema)… Marzo si… (Sería Febrero el pago previo - sin realizar)
Entonces me muestra mis datos
Clave…..Mes….…Imagen
1………...Enero…..pagar.png
2………...Febrero..pagar.png
3………...Marzo…..pagar.png

En otra línea me muestra lo siguiente :
No se ha registrado el pago previo del Mes de: Febrero… y un botón para regresar a eligir nuevamente los meses…

Pero me gustaría hacer que el mensaje no aparezca sino que mi imagen cambie por ejemplo si no hay un pago previo sin realizar muestre pagar.png (tipo carrito de compras agregar)… y si el pago previo no se ha realizado muestre otra imagen bloqueo.png… y lógicamente no se pueda agregar ese mes….

Este es mi código comprobar_pagos.php

Código PHP:
if(!isset($_POST['clases'])){
        
    }
    
    
$clases $_POST['clases'];
    
    echo 
"<table>
            <tr>
            <td>Clave</td>
            <td>Mes</td>
            </tr>"
;
if( 
is_array $_POST 'clases' ])) 

    foreach(
$clases as $clase){
    
$q_clase $clase;
        
        
$query_precedente "SELECT M.Mes FROM mensualidades AS M WHERE M.id_mensualidad= (SELECT MI.precede  FROM mensualidades AS MI where MI.id_mensualidad= '$q_clase')";
        
        
$query_precedente_detalle "SELECT M.Mes, M.precede FROM mensualidades AS M WHERE M.id_mensualidad= (SELECT MI.precede FROM mensualidades AS MI, mpagadas AS CI WHERE MI.id_mensualidad= CI.id_mensualidad= '$q_clase')";
        
        
$result_precedente = @mysql_query($query_precedente$connection) or die(mysql_error());
        
        
$filas mysql_num_rows($result_precedente);
        
$tiene_precedente true;
        if(
$filas == 0){
            
$tiene_precedente false;
        }else{
            
$precedente mysql_fetch_array($result_precedente);
            
$mes $precedente['Mes'];
            
            
$result_precedente_detalle = @mysql_query($query_precedente_detalle$connection) or die(mysql_error());
            
$filas mysql_num_rows($result_precedente_detalle);
            if(
$filas == 0){
                
$errores[$clase] = "No se ha registrado el pago previo del Mes de: $mes";
            }else{
                
            }
        }
        
        
$query_clase "SELECT * from mensualidades WHERE id_mensualidad= '$q_clase'";
        
        
$result_clase mysql_query($query_clase$connection) or die(mysql_error());
        
        
$filas mysql_num_rows($result_clase);
        if(
$filas != 0){#Algo va realmente mal si las filas son 0
            
$clase mysql_fetch_array($result_clase);
            
            echo 
"<tr>
                     <td>"
.$clase['id_mensualidad']."</td>
            <td>"
.$clase['Mes']."</td>
            <td><a href='addToCart.php?id={$clase['id_mensualidad']}&name={$clase['Mes']}' class='customButton'>"
;
echo 
"<img src='images/pagar..png' title='Pagar' /></td>
                    
                </tr>"
;
        }else{
            echo 
"<tr><td colspan=6>No seleccionó mes</td></td></tr>";
        }
    }
    
    echo 
"<tr>
            
        </tr>"
;
        
    
#Ofrecer pagar 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
        
        
foreach($clases as $clase){
            echo 
"<input type=\"hidden\" value=\"$clase\" name=\"clases[]\">";
        }
        
        
    }else{
        
        echo 
"<tr><td colspan=6><form name=\"operacion\" method=\"post\" action=\"1.php\">
            
            <input type=\"submit\" value=\"Corregir\"></form></td></tr>"
;
    }
        }        
    echo 
"";
    
    
#Fin de tabla
    
echo "</table>";
    
    
?> 
Desde GRACIAS :)
  #2 (permalink)  
Antiguo 17/12/2013, 13:45
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Bloquear pago...

agregue esto
$errores[$clase] = "No se a registrado el pago previo del Mes de: $mes";
echo "<img src='images/cancel.png' title='Pagar' />";

Pero igual la imagen no sale a la altura del mes correspondiento... es posible mover el código de mis consultas para checar precedente.... y ponerlo en el td y que salga en la tabla??????

Lo probe y nada ahora estoy probando un td con esto
<td>".$result_precedente."</td>

pero me arroja Resource id #7

Última edición por Briss; 17/12/2013 a las 14:00
  #3 (permalink)  
Antiguo 17/12/2013, 17:31
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Bloquear pago...

puse esto

<td>". $query_precedente = "SELECT M.Mes FROM pagos AS M WHERE M.id_mensualidad= (SELECT MI.precede FROM pagos AS MI where MI.id_mensualidad= '$q_clase')";

$query_precedente_detalle = "SELECT M.Mes, M.precede FROM pagos AS M WHERE M.id_mensualidad = (SELECT MI.precede FROM pagos AS MI, mpagadas AS CI WHERE MI.id_mensualidad = CI.id_mensualidad= '$q_clase')";

$result_precedente = @mysql_query($query_precedente, $connection) or die(mysql_error());

$filas = mysql_num_rows($result_precedente);
$tiene_precedente = true;
if($filas == 0){
$tiene_precedente = false;



}else{
$precedente = mysql_fetch_array($result_precedente);
$materia = $precedente['Mes'];

$result_precedente_detalle = @mysql_query($query_precedente_detalle, $connection) or die(mysql_error());
$filas = mysql_num_rows($result_precedente_detalle);
if($filas == 0){
$errores[$clase] = "No se a registrado el pago previo del Mes de: $materia";
echo "<img src='images/cancel.png' title='Pagar' />";
}
}
"</td>
Y ya sale la imagen a la altura del Mes q corresponde.... pero mi consulta sale en el form..... SELECT M.Mes..... y ademas tengo este mensaje
Warning: Illegal offset type in

Alguien que pueda ayudarme ????
  #4 (permalink)  
Antiguo 17/12/2013, 17:36
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 12 años, 9 meses
Puntos: 12
Respuesta: Bloquear pago...

he omitido el echo y listo

Etiquetas: bloquear, 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 18:47.