I'm trying to get a record in my mysql whether a record exists or not in an array. I've searched online about using array_key_exists function and unfortunately it always gives me "Match not found" even though the record exists in the array.
This is my output.
Array ( [0] => Array ( [0] => Array ( [GUESTCHECK] => 10017 [0] => 10017 ) [1] => Array ( [GUESTCHECK] => 10024 [0] => 10024 ) [2] => Array ( [GUESTCHECK] => 10066 [0] => 10066 ) [3] => Array ( [GUESTCHECK] => 10084 [0] => 10084 ) [4] => Array ( [GUESTCHECK] => 10150 [0] => 10150 ) [5] => Array ( [GUESTCHECK] => 10154 [0] => 10154 ) [6] => Array ( [GUESTCHECK] => 10223 [0] => 10223 ) [7] => Array ( [GUESTCHECK] => 10224 [0] => 10224 ) [8] => Array ( [GUESTCHECK] => 10225 [0] => 10225 ) [9] => Array ( [GUESTCHECK] => 10261 [0] => 10261 ) [10] => Array ( [GUESTCHECK] => 10284 [0] => 10284 ) [11] => Array ( [GUESTCHECK] => 10298 [0] => 10298 ) [12] => Array ( [GUESTCHECK] => 20012 [0] => 20012 ) [13] => Array ( [GUESTCHECK] => 20014 [0] => 20014 ) [14] => Array ( [GUESTCHECK] => 20054 [0] => 20054 ) [15] => Array ( [GUESTCHECK] => 20056 [0] => 20056 ) [16] => Array ( [GUESTCHECK] => 20061 [0] => 20061 ) [17] => Array ( [GUESTCHECK] => 20131 [0] => 20131 ) [18] => Array ( [GUESTCHECK] => 20160 [0] => 20160 ) [19] => Array ( [GUESTCHECK] => 20163 [0] => 20163 ) [20] => Array ( [GUESTCHECK] => 20183 [0] => 20183 ) ) )
Help me by telling what's wrong with my code?
$gchecksummary = "SELECT DISTINCT GUESTCHECK FROM `items`
where CODE = 771012 and DATE = '1/1/2018' or CODE = 771013
and DATE = '1/1/2018' or CODE = 782012
and DATE = '1/1/2018' or CODE = 774012
and DATE = '1/1/2018' or CODE = 775203
and DATE = '1/1/2018' or CODE = 775202 and DATE = '1/1/2018'";
$execgchecksummary = $conn->prepare($gchecksummary);
$execgchecksummary->execute();
while($fetchgchecksummary = $execgchecksummary->fetchAll()){
$results[] = $fetchgchecksummary;
}
print_r($results);
echo "<br />";
if (array_key_exists("10017", $results))
{
echo "Match found";
}
else
{
echo "Match not found";
}
Problem is in Your code logic and sql query.
Why to take array of unnecessary rows and do lookup in it?
Also You're repeating
DATEcondition with same value multiple timesYou can just define condition for
GUESTCHECKinside Your query, then check result count and dofetchAll(if there's a need on data).Example with rows data:
Example without getting rows from db:
p.s. make sure You've added index to
GUESTCHECKandCODEfields to help DB engine to search for data effectively.