Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error al Eliminar varios datos a la vez

Estas en el tema de Error al Eliminar varios datos a la vez en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/11/2015, 10:23
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Error al Eliminar varios datos a la vez

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
  #2 (permalink)  
Antiguo 29/11/2015, 13:12
 
Fecha de Ingreso: marzo-2015
Mensajes: 183
Antigüedad: 9 años, 1 mes
Puntos: 8
Respuesta: Error al Eliminar varios datos a la vez

Cita:
Iniciado por Jose789 Ver Mensaje
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();
  #3 (permalink)  
Antiguo 29/11/2015, 14:07
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Error al Eliminar varios datos a la vez

Cita:
Iniciado por oggy_15_3 Ver Mensaje
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();
Ostras, es verdad no me he dado cuenta.

Etiquetas: fecha, mysql, select, sql, vez
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 23:49.