このクエリは、1つの類似した列を持つ3つの異なるテーブルからデータを取得するために作成しました。
問題は、エラーをスローすることです。
500内部サーバーエラー
出力をjsonの形式にする必要があり、タスク列の値は(json内の)子配列である必要があります。
このクエリのどこにエラーがあるか教えてください。
$query2 = "SELECT
jos_mobile_contacts.contact_record_id,
jos_mobile_contacts.firstName,
jos_mobile_contacts.lastName,
jos_mobile_contacts.mobiePhoneNumber,
jos_mobile_contacts.officePhoneNumber,
jos_mobile_contacts.contactType,
jos_mobile_contacts.email,
jos_mobile_contacts.address,
jos_mobile_contacts.address2,
jos_mobile_contacts.city,
jos_mobile_contacts.state,
jos_mobile_contacts.Zip,
jos_mobile_contacts.notes,
jos_mobile_contacts.customfield1,
jos_mobile_contacts.customfield2,
jos_mobile_contacts.customfield3,
jos_mobile_contacts.companyName,
jos_mobile_contacts.title,
jos_tasks.title,
josi_tasks.priority,
jos_tasks.description
FROM jos_mobile_contacts
INNER JOIN jos_tasks
WHERE jos_mobile_contacts.registered_mobile_id ='453'
and jos_tasks.registered_mobile_id ='453'";
$db->setQuery($query2);
$db->query();
$numrows= $db->getNumRows();
$rowsContacts = $db->loadAssocList();
if ($numrows <= 0 ) {
$displayAction = "display:none";
} else {
foreach ($rowsContacts as $contactInfo) {
$row_array['contactsId']= $contactInfo['contact_record_id'];
$row_array['firstName']= $contactInfo['firstName'];
$row_array['lastName']= $contactInfo['lastName'];
$row_array['mobiePhoneNumber']= $contactInfo['mobiePhoneNumber'];
$row_array['officePhoneNumber']= $contactInfo['officePhoneNumber'];
$row_array['priority']= $contactInfo['priority'];
$row_array['title']= $contactInfo['title'];
}
echo $row_array;
}
500エラーは、クラッシュの原因を正確に特定できるほど具体的ではありませんが、コードにいくつかの問題が見られます。
500エラーの正確な原因は上記のいずれかである可能性があります。
私はあなたのデータベースにアクセスせずに以下のコードをテストすることはできませんが、これはあなたを正しい軌道に乗せるでしょう。
$mobileid = 453;
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select('contacts.contact_record_id, contacts.firstName,
contacts.lastName, contacts.mobiePhoneNumber,
contacts.officePhoneNumber, contacts.contactType,
contacts.email, contacts.address, contacts.address2,
contacts.city, contacts.state, contacts.Zip,
contacts.notes, contacts.customfield1, contacts.customfield2,
contacts.customfield3, contacts.companyName, contacts.title,
tasks.title, josi_tasks.priority, tasks.description')
->from('#__tasks AS tasks')
->innerJoin('#__mobile_contacts AS contacts ON tasks.registered_mobile_id = contacts.registered_mobile_id')
->where('tasks.registered_mobile_id = '.$mobileid);
$db->setQuery($query2);
$rowsContacts = $db->loadAssocList();
if (count($rowsContacts)){
$displayAction = "display:none";
} else {
foreach ($rowsContacts as $contactInfo) {
$row_array['contactsId'] = $contactInfo['contact_record_id'];
$row_array['firstName'] = $contactInfo['firstName'];
$row_array['lastName'] = $contactInfo['lastName'];
$row_array['mobiePhoneNumber'] = $contactInfo['mobiePhoneNumber'];
$row_array['officePhoneNumber'] = $contactInfo['officePhoneNumber'];
$row_array['priority'] = $contactInfo['priority'];
$row_array['title'] = $contactInfo['title'];
}
$output = json_encode($row_array);
echo $output;
}
これがお役に立てば幸いです。よろしくジョン