MySQLi handler - this one is displaying everything as intended.
$wynik = @$polaczenie -> query("SELECT zlec_status.nazwa AS Status,
piorytet.nazwa AS Priorytet,
Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`,
Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ',
zlec_adresy.oddzial)
AS `adres`,
zlec_z_dnia,zlec_id,
zlec_nr,
zlec_do,
zlec_ogran,
awizacje,
awizacja_na_dzien,
termin_zamkniecia,
tresc,
uwagi
FROM zlec
INNER JOIN koord
ON zlec.koord = koord.id
INNER JOIN zlec_adresy
ON zlec.zlec_addres = zlec_adresy.id
INNER JOIN piorytet
ON zlec.priorytet = piorytet.id
INNER JOIN zlec_status
ON zlec.status_zlecenia = zlec_status.id
WHERE `zlec_adresy`.`miasto` LIKE '%".array_values($activeFilters)[0]."%'
OR
`zlec_adresy`.`ulica` LIKE '%".array_values($activeFilters)[0]."%'
OR
`zlec_adresy`.`oddzial` LIKE '%".array_values($activeFilters)[0]."%'
LIMIT 0,10");
if ($wynik === false){
echo '<p>Zapytanie nie zostało wykonane poprawnie!</p>';
$polaczenie -> close();
}
else {
$foutput = null;
while(($row = $wynik -> fetch_assoc()) !== null){
$foutput[] = array(
'zlec_id' => $row['zlec_id'],
//'koord' => $zlecenie->get_coord($row['koord']),
'priorytet' =>$row['Priorytet'],
'zlec_addres' => $row['adres'],
'zlec_z_dnia' => $row['zlec_z_dnia'],
'zlec_nr' => $row['zlec_nr'],
'zlec_do' => $row['zlec_do'],
'zlec_ogran' => $row['zlec_ogran'],
'awizacje' => $zlecenie->get_person_awizo($row['awizacje']),
'awizacja_na_dzien' => $row['awizacja_na_dzien'],
'status_zlecenia' => $row['Status'],
'termin_zamkniecia' => $row['termin_zamkniecia'],
'tresc' => $row['tresc'],
'uwagi' => $row['uwagi']
);
}
$wynik -> close(); // zwolnienie pamięci
$polaczenie -> close();
}
A var_dump($foutput) will show all the data it contains.
The PDO handler
$fquery = $db->query("SELECT zlec_status.nazwa AS Status,
piorytet.nazwa AS Priorytet,
Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`,
Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ',
zlec_adresy.oddzial)
AS `adres`,
zlec_z_dnia,zlec_id,
zlec_nr,
zlec_do,
zlec_ogran,
awizacje,
awizacja_na_dzien,
termin_zamkniecia,
tresc,
uwagi
FROM zlec
INNER JOIN koord
ON zlec.koord = koord.id
INNER JOIN zlec_adresy
ON zlec.zlec_addres = zlec_adresy.id
INNER JOIN piorytet
ON zlec.priorytet = piorytet.id
INNER JOIN zlec_status
ON zlec.status_zlecenia = zlec_status.id
WHERE :where_st LIMIT :start, :pagesize", array(
"start" => $start,
"pagesize" => $pagesize,
"where_st" => $where
));
This are the generators for the bindings.
$pagenum = $_GET['pagenum'];
$pagesize = $_GET['pagesize'];
$start = $pagenum * $pagesize;
switch (array_keys($activeFilters)[0]) {
case "zlec_addres":
$where .= "`zlec_adresy`.`miasto` LIKE '%".array_values($activeFilters)[0]."%'
OR
`zlec_adresy`.`ulica` LIKE '%".array_values($activeFilters)[0]."%'
OR
`zlec_adresy`.`oddzial` LIKE '%".array_values($activeFilters)[0]."%'";
break;
}
And lastly a dump for the $fquery
SELECT zlec_status.nazwa AS Status,
piorytet.nazwa AS Priorytet,
Concat(koord.imie, ' ', koord.nazwisko) AS `Koordynator`,
Concat(zlec_adresy.miasto, ' - ', zlec_adresy.ulica, ' ',
zlec_adresy.oddzial)
AS `adres`,
zlec_z_dnia,zlec_id,
zlec_nr,
zlec_do,
zlec_ogran,
awizacje,
awizacja_na_dzien,
termin_zamkniecia,
tresc,
uwagi
FROM zlec
INNER JOIN koord
ON zlec.koord = koord.id
INNER JOIN zlec_adresy
ON zlec.zlec_addres = zlec_adresy.id
INNER JOIN piorytet
ON zlec.priorytet = piorytet.id
INNER JOIN zlec_status
ON zlec.status_zlecenia = zlec_status.id
WHERE `zlec_adresy`.`miasto` LIKE '%Sz%'
OR
`zlec_adresy`.`ulica` LIKE '%Sz%'
OR
`zlec_adresy`.`oddzial` LIKE '%Sz%' LIMIT 0, 10
This is quite wired because both on the MySQLi handler and direct sql query in phpmyadmin returns the desired data - but it seems like the PDO handler doesn't display anything, only thing that comes to my mind is that I use '%".array_values($activeFilters)[0]."%'
as a string injection for the query but it should be passed as a parameter - I am not sure about that I might be wrong I really would like to stick to PDO instate of creating next db connection. Could you try explain me why is it not displaying? Var_dumping the PDO query returns array(0) - while echoing the code and pasting to phpmyadmin returns 9 affected rows. Besides, the same query but without the WHERE part - runs normally and shows affected rows which is even more wired