I am testing a MySQL query and it is working in MySQL workbench:-
SELECT patient.patient_id,
patient.patient_name_en,
patient.nationality,
visit.visit_id,
visit.date_of_visit,
visit.visit_reason,
visit.consultation_type,
visit.patient_weight,
visit.patient_height,
visit.visit_status,
visit.clinic_id,
doctor_list.doctor_name,
nurse_list.nurse_name,
consultation.complication_name,
consultation.diagnosis_id,
consultation.consultation_result,
medication.med_name,
consultation_med.given_quantity,
consultation_med.medication_collector
from visit
LEFT JOIN patient ON patient.patient_id = visit.patient_id
LEFT JOIN consultation ON visit.visit_id=consultation.visit_id
LEFT JOIN nurse_list ON consultation.nurse_list_id = nurse_list.nurse_list_id
LEFT JOIN doctor_list ON consultation.doctor_list_id = doctor_list.doctor_list_id
LEFT JOIN consultation_med ON consultation_med.consultation_id = consultation.consultation_id
LEFT JOIN med_pharmacy ON med_pharmacy.med_pharmacy_id = consultation_med.med_pharmacy_id
LEFT JOIN medication ON medication.med_id=med_pharmacy.med_id
WHERE visit.clinic_id='361' AND visit.visit_id = '188'
But when I added into a PHP file, and add binding variables to it, I am getting an error said:
Notice: Undefined index: patient_id in
Here I added the file at the top of my page:
<?php
include_once('../php/connection.php');
include_once('../php/visitProfile.php');
?>
Then the visitProfile.php
:-
<?php
error_reporting(E_ALL);
ini_set('display_error', 1);
require_once('../php/connection.php');
$cid = $_SESSION['clinic_id'];
$vid = $_REQUEST['pid'];
$getVisitProfile = "SELECT patient.patient_id,
patient.patient_name_en,
patient.nationality,
visit.visit_id,
visit.date_of_visit,
visit.visit_reason,
visit.consultation_type,
visit.patient_weight,
visit.patient_height,
visit.visit_status,
visit.clinic_id,
doctor_list.doctor_name,
nurse_list.nurse_name,
consultation.complication_name,
consultation.diagnosis_id,
consultation.consultation_result,
medication.med_name,
consultation_med.given_quantity,
consultation_med.medication_collector
FROM visit
LEFT JOIN patient ON patient.patient_id = visit.patient_id
LEFT JOIN consultation ON visit.visit_id=consultation.visit_id
LEFT JOIN nurse_list ON consultation.nurse_list_id = nurse_list.nurse_list_id
LEFT JOIN doctor_list ON consultation.doctor_list_id = doctor_list.doctor_list_id
LEFT JOIN consultation_med ON consultation_med.consultation_id = consultation.consultation_id
LEFT JOIN med_pharmacy ON med_pharmacy.med_pharmacy_id = consultation_med.med_pharmacy_id
LEFT JOIN medication ON medication.med_id=med_pharmacy.med_id
WHERE visit.clinic_id=:cid AND visit.visit_id = :vid";
$execGetVisitProfile = $conn->prepare($getVisitProfile);
$execGetVisitProfile->bindValue(':cid', $cid);
$execGetVisitProfile->bindValue(':vid', $vid);
$execGetVisitProfile->execute();
$res = $execGetVisitProfile->fetchAll();
?>
And when I try to echo the patient id:
<th >Patient ID</th><td><?php echo $res['patient_id'] ?></td>
I am getting the error on it.
P.S. Please note that the query could return one array of multiple ones, but some information are the same in each array like the patient id.
EDIT
var_dump result
:
array (size=1) 0 => array (size=38) 'patient_id' => string '361-9001' (length=8) 0 => string '361-9001' (length=8) 'patient_name_en' => string 'X Y Z' (length=5) 1 => string 'X Y Z' (length=5) 'nationality' => string 'Syrian' (length=6) 2 => string 'Syrian' (length=6) 'visit_id' => string '188' (length=3) 3 => string '188' (length=3) 'date_of_visit' => string '2017-07-20' (length=10) 4 => string '2017-07-20' (length=10) 'visit_reason' => string 'This visit occured for medication collection only' (length=49) 5 => string 'This visit occured for medication collection only' (length=49) 'consultation_type' => string 'MedicationCollection' (length=20) 6 => string 'MedicationCollection' (length=20) 'patient_weight' => string '0' (length=1) 7 => string '0' (length=1) 'patient_height' => string '0' (length=1) 8 => string '0' (length=1) 'visit_status' => string 'Inactive' (length=8) 9 => string 'Inactive' (length=8) 'clinic_id' => string '361' (length=3) 10 => string '361' (length=3) 'doctor_name' => string 'Abbas Nasser' (length=12) 11 => string 'Abbas Nasser' (length=12) 'nurse_name' => null 12 => null 'complication_name' => string 'Regular Medication Collection Visit' (length=35) 13 => string 'Regular Medication Collection Visit' (length=35) 'diagnosis_id' => string '86' (length=2) 14 => string '86' (length=2) 'consultation_result' => string 'medication collection' (length=21) 15 => string 'medication collection' (length=21) 'med_name' => string 'Isosorbide Dinitrate 10mg (Isordil 10mg) Tablets ' (length=49) 16 => string 'Isosorbide Dinitrate 10mg (Isordil 10mg) Tablets ' (length=49) 'given_quantity' => string '0' (length=1) 17 => string '0' (length=1) 'medication_collector' => string 'brother' (length=7) 18 => string 'brother' (length=7)