I have a problem with my table created with datatable and the sql query I make. The problem is that the result of the PDO query that I make with: min and: max does not work while if I replace the defined values it gets results. I looked at the code structure but I don't find any problems and I hope you are luckier than me.
Below is the code:
$('.input-daterange input').each(function() {
$.fn.datepicker.dates['it'] = {
days: ["Domenica", "Lunedì", "Martedì", "Mercoledì", "Giovedì", "Venerdì", "Sabato"],
daysShort: ["D", "L", "M", "M", "G", "V", "S"],
daysMin: ["D", "L", "M", "M", "G", "V", "S"],
months: ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"],
monthsShort: ["Gen", "Feb", "Mar", "Apr", "Mag", "Giu", "Lug", "Ago", "Set", "Ott", "Nov", "Dic"],
today: "Oggi",
clear: "Annulla",
format: "dd/mm/yyyy",
titleFormat: "MM yyyy", /* Leverages same syntax as 'format' */
weekStart: 1
};
$(this).datepicker({
format: "dd-mm-yyyy",
weekStart: 1,
language: "it",
orientation: "bottom left",
clearBtn: true,
autoclose: true,
today:true
}).datepicker("setDate", new Date());
});
$('#cercaFoglioCassa').click(function(){
let min = $('#min').val();
let max = $('#max').val();
// DataTables initialisation
var table = $('#foglioCassa').DataTable({
"language": {
url: 'https://cdn.datatables.net/plug-ins/1.10.25/i18n/Italian.json'
},
"processing": true,
"serverSide": true,
"order": [],
"autoWidth": false,
"ajax": {
url: "action.php",
type: "POST",
data: {
action: 'getCassa', min, max
}
},
"columnDefs": [{
"targets": [0,1,2,3,4,5,6,7,8,9],
"orderable": false,
}, ],
});
$('#risultatoFiltro').css('display','block');
PHP code
if ($_POST['action'] === 'getCassa') {
$min = date('Y-m-d', strtotime($_POST['min']));
$max = date('Y-m-d', strtotime($_POST['max']));
$stmt = $db->prepare('SELECT incassi.idIncasso,name, surname,polizze_RCA.tipo ,polizze_RCA.n_polizza,polizze_RCA.premio, incassi.idPolizza, t_compagnie.nome, t_company.compagnia, incassi.importo, incassi.tipoPagamento, incassi.data, incassi.sospeso FROM members, polizze_RCA, incassi, t_compagnie, t_company WHERE members.memberID = polizze_RCA.id_cliente AND polizze_RCA.id = incassi.idPolizza AND t_compagnie.id = polizze_RCA.id_compagnia AND t_company.id =polizze_RCA.id_ramo AND incassi.data BETWEEN :min AND :max');
$stmt->execute(array(
':min' => $min,
':max' => $max
));
$incassi = $stmt->fetchAll();
foreach ($incassi as $i) {
$sub_array = array();
$sub_array[] = '<a href="update-incasso.php?idIncasso='.$i['idIncasso'].'">'.$i['idIncasso'].'</a>';
$sub_array[] = date('d-m-Y', strtotime($i['data']));
$sub_array[] = $i['name']. " " .$i['surname'];
$sub_array[] = $i['tipoPagamento'];
$sub_array[] = "€ ".$i['importo'];
$sub_array[] = '<a href="polizza.php?idPolizza='.$i['idPolizza'].'&tipoPolizza='.$i['tipo'].'&nPolizza='.$i['n_polizza'].'&premio='.$i['premio'].'">'.$i['n_polizza'].'</a>';
$sub_array[] = $i['nome'];
$sub_array[] = $i['compagnia'];
if ($i['sospeso'] === 'SI') {
$sub_array[] = '<button type="button" class="btn btn-danger btn-sm"><i class="fas fa-check"></i></button>';
}else {
$sub_array[] = "";
}
$sub_array[] = '<button type="button" name="cancellaIncasso" class="btn btn-danger btn-sm cancellaIncasso" data-id="'.$i["id"].'"><i class="fas fa-times"></i></button>';
$data [] = $sub_array;
}
$stmt = $db->prepare('SELECT count(*) as total_rows FROM incassi');
$stmt->execute();
$totalRows = $stmt->fetchAll();
foreach ($totalRows as $tr) {
$total_rows = $tr['total_rows'];
}
$output = array(
"draw" => intval($_POST["draw"]),
"recordsTotal" => $total_rows,
'recordsFiltered' => $total_rows,
"data" => $data
);
echo json_encode($output);
}
source https://stackoverflow.com/questions/70115463/no-data-in-pdo-statement
Comments
Post a Comment