0

So I have this large query that was working fine until I added the jobs.deliveryDate. Query still has no errors but when I echo out my value it echoes these strange characters. I'm wondering if it has something to do with the MySQL datatype. This variable has a datatype of Date, but I'm able to pull in a datatype of Datetime just fine. Screen Shot of characters

$query = $connect->prepare("
    (SELECT 
    jobs.jobID,
    jobs.jobName,
    jobs.pdf,
    jobs.deliveryDate,
    jobstatus.status,

    rooms.roomID, 
    rooms.roomName, 
    rooms.assemblyS,
    rooms.assemblyF,
    rooms.assembledF,
    rooms.assemblyNeeded,
    rooms.woodType,
    rooms.finishType,
    rooms.finishColor,
    rooms.numberOfBoxes,
    rooms.isRush,
    rooms.description,

    jobnotes.note
    FROM jobs 
    LEFT JOIN rooms ON jobs.jobID = rooms.jobID 
    LEFT JOIN jobnotes ON jobnotes.jobID = jobs.jobID
    LEFT JOIN jobstatus ON jobstatus.statusOrder = jobs.statusOrder
    WHERE (rooms.assemblyNeeded = 1) AND ((rooms.isRush = 1 AND rooms.assemblyF = 0) OR (rooms.isRush = 1 AND rooms.assemblyF IS NULL))
    GROUP BY rooms.roomID)

    UNION ALL

    (SELECT 
    jobs.jobID,
    jobs.jobName,
    jobs.pdf,
    jobs.deliveryDate,
    jobstatus.status,

    rooms.roomID, 
    rooms.roomName, 
    rooms.assemblyS,
    rooms.assemblyF,
    rooms.assembledF,
    rooms.assemblyNeeded,
    rooms.woodType,
    rooms.finishType,
    rooms.finishColor,
    rooms.numberOfBoxes,
    rooms.isRush,
    rooms.description,

    jobnotes.note
    FROM jobs 
    LEFT JOIN rooms ON jobs.jobID = rooms.jobID 
    LEFT JOIN jobnotes ON jobnotes.jobID = jobs.jobID
    LEFT JOIN jobstatus ON jobstatus.statusOrder = jobs.statusOrder
    WHERE ((rooms.assemblyNeeded = 1 AND jobstatus.statusOrder >= 0 AND rooms.assemblyF IS NULL)
    OR (rooms.assemblyNeeded = 1 AND jobstatus.statusOrder >= 0 AND rooms.assemblyF = 0))
    AND ((rooms.isRush = 0 AND rooms.assemblyF = 0) OR (rooms.isRush = 0 AND rooms.assemblyF IS NULL))
    GROUP BY jobs.jobName, rooms.finishColor 
    ORDER BY jobs.statusOrder = 7 DESC, deliveryDate, jobName, finishType LIMIT 50)");
if(!$query) {
    echo("Query Failed Because " . mysqli_error($connect));
};

$query->execute();
$result = $query->get_result();


while($row = mysqli_fetch_assoc($result)) {
    $deliveryDate = $row['deliveryDate'];
    echo $deliveryDate;
}
Tim Allred
  • 59
  • 6

1 Answers1

0

This may not be the most proper way to solve this problem but I was able to get the date by using

EXTRACT(YEAR FROM jobs.deliveryDate) as deliveryDateYear,
EXTRACT(MONTH FROM jobs.deliveryDate) as deliveryDateMonth,
EXTRACT(DAY FROM jobs.deliveryDate) as deliveryDateDay,
Tim Allred
  • 59
  • 6