I have a problem with creating a query through a function (all others variables works correctly) I have a function that doesn't print variables correctly (exactly $NomiFarmacie and $day)
//The problem is present in this function
function Cicla($Periodo, $FarmacieRiordinate, $Query) {
global $tabella_calendario, $count; //them works
foreach ($Periodo as $giorno) {
$day = $giorno->format("Y-m-d");
$NomiFarmacie = addslashes($FarmacieRiordinate[$count % count($FarmacieRiordinate)]);
echo $NomiFarmacie; echo $day; //Both are correct
print_r($Query); //Queries are not completed correctly. OUTPUT Below
$count++;
}
}
$FarmacieRiordinate = $_POST['elementi'];
$DataIniziale = $_POST['data1'];
$DataFinale = $_POST['data2'];
$Query = ("UPDATE $tabella_calendario SET Farmacia='$NomiFarmacie' WHERE Data='$day'");
Cicla(CalcolaPeriodo($DataIniziale, $DataFinale), $FarmacieRiordinate, $Query);
A PORTION OF OUTPUT print_r($Query)
UPDATE calendario SET Farmacia='Array' WHERE Data='1546297200'
UPDATE calendario SET Farmacia='Array' WHERE Data='1546297200'
UPDATE calendario SET Farmacia='Array' WHERE Data='1546297200'
UPDATE calendario SET Farmacia='Array' WHERE Data='1546297200'
The problem is your $Query
already be combined as string BEFORE passed into your function. You can use vsprintf
in this case.
function Cicla($Periodo, $FarmacieRiordinate, $Query) {
global $tabella_calendario, $count; //them works
foreach ($Periodo as $giorno) {
$day = $giorno->format("Y-m-d");
$NomiFarmacie = addslashes($FarmacieRiordinate[$count % count($FarmacieRiordinate)]);
echo $NomiFarmacie; echo $day; //Both are correct
$realQuery = vsprintf($Query, array($NomiFarmacie, $day));
print_r($realQuery); //Queries are not completed correctly. OUTPUT Below
$count++;
}
}
$FarmacieRiordinate = $_POST['elementi'];
$DataIniziale = $_POST['data1'];
$DataFinale = $_POST['data2'];
$Query = ("UPDATE $tabella_calendario SET Farmacia='%s' WHERE Data='%s'");
Cicla(CalcolaPeriodo($DataIniziale, $DataFinale), $FarmacieRiordinate, $Query);
You can read more about vsprintf here:
.