Cita:
Iniciado por Jose789
Hola gente os comento un pequeño error que tengo haber si alguno me puede echar alguna mano con esto, Cada día mediante el Cron ejecuto esto cada día 00:00
pero solo elimina 1 único resultado, si en 1 día se vencen 2 facturas solo borra 1 de ellas... cuando debería de borrar las 2.
Cuando hay mas facturas para borrar en el mismo dia obtengo el siguiente error
Warning: mysqli::query(): Couldn't fetch mysqli in Código PHP:
function removeBill($id){
global $conn;
// sql to delete a record
$sql = "DELETE FROM Facturas WHERE id='$id'";
if ($conn->query($sql) === TRUE) {
//echo "Record deleted successfully";
} else {
//echo "Error deleting record: " . $conn->error;
}
$conn->close();
}
$q = $conn->query("SELECT * FROM Facturas WHERE estado = 'No pagada'");
if($q->num_rows > 0) {
while($row = $q->fetch_array(MYSQL_ASSOC)) {
/*Fechas */
$hoy = date('Y-m-d');
$end = date('Y-m-d',$row['fecha_end']);
$bill_ini = new DateTime($hoy); //Esto cojeria el dia actual
$bill_end = new DateTime($end); //Y esto la fecha final
$interval = date_diff($bill_ini, $bill_end);
$dias = $interval->format('%R%a días');
if($dias == +0) {
//debug
echo "Borramos Factura Vencida <br>";
//Borramos Factura
removeBill($row['id']);
}
}
}
Espero que me puedan echar una mano. Gracias por adelantado
Me atrevería a decir que tu problema es que cierras la conexión al eliminar la primera factura al llamar a la función removeBill(){....}
Deberías ponerla al terminar tu while(){}
$conn->close();