Foros del Web » Programando para Internet » PHP »

Listar los usuarios que no hayan abonado pago ayer

Estas en el tema de Listar los usuarios que no hayan abonado pago ayer en el foro de PHP en Foros del Web. Hola amigos, estoy desarrollando un programita de pago diario. Me tope con el problema de que tengo que listar los usuarios que no abonaron su ...
  #1 (permalink)  
Antiguo 07/12/2015, 14:09
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 2 meses
Puntos: 2
Listar los usuarios que no hayan abonado pago ayer

Hola amigos, estoy desarrollando un programita de pago diario. Me tope con el problema de que tengo que listar los usuarios que no abonaron su pago el dia anterior para generar un script que me los inserte automáticamente con abono en $0. he tratado de hacerlo pero no me arroja lo que deseo. Alguien por favor me colabore


Código PHP:
<?php
$hoy
=date("Y-m-d"); 
$dias11// los días a restar 
$ayer=date("Y-m-d"strtotime("$hoy - $dias1 day"));  
echo 
"AYER: $ayer";    


    
$sql="SELECT pagos.cod_pago,pagos.cod_cre,creditos.cod_cre,pagos.fecha_abo,pagos.abono  
          FROM pagos,creditos
          WHERE pagos.cod_cre=creditos.cod_cre AND pagos.fecha_abo='$ayer' AND pagos.abono=NULL
          
                      "
;
                
$result=mysql_query($sql,$link);     
                  echo 
"<table border>
                      <tr>
                      <td>COD PAGO</td><td>codigo credito</td><td>Fecha ayer</td>
                      </tr>"
;
                  while(
$row=mysql_fetch_array($result)){
                     echo 
"
                        <tr>
                        <td>$row[cod_pago]</td>
                        <td>$row[cod_cre]<input type='text' name='cod_cre[]' value='$row[cod_cre]'></td>
                        <td>$row[fecha_abo]</td>
                        </tr>
                        "

                  } echo 
'error:'.mysql_error($link);
                  echo 
"</table>";

?>
  #2 (permalink)  
Antiguo 08/12/2015, 01:28
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Sin conocer tu base de datos creo que esto es así:

Código MySQL:
Ver original
  1. SELECT pagos.cod_pago,pagos.cod_cre,creditos.cod_cre,pagos.fecha_abo,pagos.abono  
  2. FROM pagos,creditos
  3. ON pagos.cod_cre=creditos.cod_cre
  4. WHERE pagos.fecha_abo='$ayer' AND pagos.abono=NULL
  #3 (permalink)  
Antiguo 08/12/2015, 16:42
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Hola me sale este error

Código HTML:
Ver original
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\INVERSIONES3\pruebas\reg_automatico.php on line 70
  2. error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ON pagos.cod_cre=creditos.cod_cre WHERE pagos.fecha_abo='2015-12-06' ' at line 3
  #4 (permalink)  
Antiguo 08/12/2015, 19:31
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Hola cluster28 gracias por tu ayuda, ya pude solucionar la duda que tenia de esta manera:

Código MySQL:
Ver original
  1. SELECT c.*
  2.           FROM creditos c
  3.                 LEFT JOIN(SELECT pagos.cod_pago,pagos.cod_cre,pagos.fecha_abo
  4.                           FROM pagos
  5.                           WHERE fecha_abo='$ayer')Sbc
  6.                 ON c.cod_cre=sbc.cod_cre
  7.                 WHERE Sbc.cod_cre IS NULL

Ahora lo que necesito es que, con base a los registros obtenidos se realice una inserción por día automáticamente pero no se si esto se pueda hacer con PHP. Me explico. La idea es que cuando el reloj del sistema pase al día siguiente los clientes que no registren abonos el día anterior se les abonan cero pesos ($0,0) para que el registro del día no quede en blanco. Pero para esto necesitaría una función que ejecute mi script automáticamente una vez al día sin necesidad de que el usuario lo haga de forma manual. ¿Es posible hacer esto?

Para este caso la inserción es esta:

Código PHP:
Ver original
  1. $mvalor=array();
  2.         $mvalor['fecha_abo']=$_POST['fecha_abo'];
  3.         $mvalor['cod_cre']=$_POST['cod_cre'];
  4.         $mvalor['abono']=$_POST['abono'];
  5.        
  6.    for($i=0; $i<count($mvalor); $i++){     
  7.    $sql="insert into pagos(fecha_abo,hora_abo,cod_cre,abono)values
  8.   ('".$_POST["fecha_abo"][$i]."',NOW(),'".$_POST["cod_cre"][$i]."','".$_POST["abono"][$i]."')";    
  9.     if ($result=mysql_query ($sql,$link)){
  10.           echo '<script language= "Javascript">
  11.          alert("Abono Insertado");
  12.          </script>';
  13.        }
  14.     }
  #5 (permalink)  
Antiguo 09/12/2015, 06:38
 
Fecha de Ingreso: octubre-2010
Ubicación: España
Mensajes: 1.007
Antigüedad: 13 años, 6 meses
Puntos: 123
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Para ejecutar un script cada X tiempo deberás crear un Cron Job desde el cpanel.

Puedes invertir un poco en Google o en el foro que también se ha abordado el tema otras veces.

Saludos.
  #6 (permalink)  
Antiguo 09/12/2015, 13:05
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Solamente se puede desde el servidor? es posible hacerlo en local?
  #7 (permalink)  
Antiguo 10/12/2015, 01:58
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Puedes hacer una URL pública estilo http://www.domino.com/automatizaciones.php y con algún programa en tu PC llamarla una vez al día. Pero esto es una guarrada. Hazlo con un cron mejor.
  #8 (permalink)  
Antiguo 10/12/2015, 10:59
 
Fecha de Ingreso: enero-2010
Ubicación: Colombia
Mensajes: 238
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: Listar los usuarios que no hayan abonado pago ayer

Tienes Razon, es mejor con el Cron job. Gracias

Etiquetas: fecha, pago, select, sql, usuarios
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 21:10.