Как исправить ошибку преобразования массива в строку и отобразить извлеченные данные

Я использую MYSQL и PHP на WordPress для извлечения данных из базы данных, но использую 4 выпадающих списка, которые позволяют пользователю сделать свой выбор и на основе выбора пользователя SQL-запрос будет извлекать все связанные данные.

Проблема в том, что система отображает следующее предупреждение:

Преобразование массива в строку в

и не извлекайте ничего из базы данных.

Примечание: SQL-запрос корректен и извлекает необходимые данные (проверено на phpmyadmin).

Код:

<?php
/*
Template Name: search info
*/

get_header();
?>

<?php
// code for submit button action
global $wpdb;
//variables that handle the retrieved data from mysql database based on the ID of the variable in HTML (select)if(isset($_POST['query_submit']))
{

if(isset($_POST['site_name']))
{
$site_name=$_POST['site_name'];
}
else { $site_name=""; }

if(isset($_POST['owner_name']))
{
$owner_name=$_POST['owner_name'];
}
else { $owner_name=""; }

if(isset($_POST['Company_name']))
{
$company_name=$_POST['Company_name'];
}
else { $company_name=""; }

if(isset($_POST['Subcontractor_name']))
{
$Subcontractor_name=$_POST['Subcontractor_name'];
}
else { $Subcontractor_name="";}

$site_id = ['siteID'];
//$site_id = (array)$site_id;
$equipment_type = ['equipmentTYPE'];
//$equipment_type = (array)$equipment_type;
$lat=['latitude'];
//$lat = (array)$lat;
$long=['longitude'];
//$long = (array)$long;
$height = ['height'];
//$height = (array)$height;
$owner_contact = ['ownerCONTACT'];
//$owner_contact = (array)$owner_contact;
$sub_contact = ['subcontractorCONTACT'];
//$sub_contact = (array)$sub_contact;
$sub_company =[ 'subcontractorCOMPANY'];
//$sub_company = (array)$sub_company;//query to retrieve all  related info of the selected data from the dropdown list
$query_submit =$wpdb->get_results ("select

site_info.siteID,site_info.siteNAME ,site_info.equipmentTYPE,site_coordinates.latitude,site_coordinates.longitude,site_coordinates.height ,owner_info.ownerNAME,owner_info.ownerCONTACT,company_info.companyNAME,subcontractor_info.subcontractorCOMPANY,subcontractor_info.subcontractorNAME,subcontractor_info.subcontractorCONTACT from `site_info`
LEFT JOIN `owner_info`
on site_info.ownerID = owner_info.ownerID
LEFT JOIN `company_info`
on site_info.companyID = company_info.companyID
LEFT JOIN `subcontractor_info`
on site_info.subcontractorID = subcontractor_info.subcontractorID
LEFT JOIN `site_coordinates`
on site_info.siteID=site_coordinates.siteID
where
site_info.siteNAME = `$site_name`
AND
owner_info.ownerNAME = `$owner_name`
AND
company_info.companyNAME = `$company_name`
AND
subcontractor_info.subcontractorNAME = `$Subcontractor_name`
" , ARRAY_A);

// create a table  inside php code

echo "<table width='30%' ";
echo     " <tr>";
echo         " <td>$query_submit ['siteNAME']</td>";
echo         " <td>$query_submit  ['ownerNAME']</td>";
echo         " <td>$query_submit  ['companyNAME']</td>";
echo         " <td>$query_submit ['subcontractorNAME']</td>";
echo         " <td>$query_submit ['siteID'] </td>";
echo         " <td>$query_submit ['equipmentTYPE'] </td>";
echo         " <td>$query_submit ['latitude'] </td>";
echo         " <td>$query_submit ['longitude'] </td>";
echo         " <td>$query_submit ['height']</td>";
echo         " <td>$query_submit ['ownerCONTACT']</td>";
echo         " <td>$query_submit ['subcontractorCONTACT']</td>";
echo         " <td>$query_submit ['subcontractorCOMPANY']</td>";
echo     "</tr>";
echo "</table>";
?>

веб-страница после нажатия кнопки отправки

2

Решение

Ошибка происходит из-за строк:

$site_id = ['siteID'];
//$site_id = (array)$site_id;
$equipment_type = ['equipmentTYPE'];
//$equipment_type = (array)$equipment_type;
$lat=['latitude'];
//$lat = (array)$lat;
$long=['longitude'];
//$long = (array)$long;
$height = ['height'];
//$height = (array)$height;
$owner_contact = ['ownerCONTACT'];
//$owner_contact = (array)$owner_contact;
$sub_contact = ['subcontractorCONTACT'];
//$sub_contact = (array)$sub_contact;
$sub_company =[ 'subcontractorCOMPANY'];

Я не уверен, что если вы получаете эти переменные из поста. Если вы получаете их из почтовых значений, используйте:

$site_id = $_POST['siteID'];
^^^use global variable

Но, как я понимаю, вы используете его в $query_submit переменная массива. это означает, что это исходит от БД.

В этом случае вы должны удалить или прокомментировать эти строки.

0

Другие решения

В вашем эхо не правильный способ вызова строки, вы даете пространство между $query_submit ['string'] Используйте как это $query_submit['siteNAME'] И ваш запрос отправки запроса имеет небольшие изменения:

    <?php
/*
Template Name: search info
*/

get_header();
?>

<?php
// code for submit button ation
global $wpdb;
//variables that handle the retrieved data from mysql database based on the ID of the variable in HTML (select)if(isset($_POST['query_submit']))
{

if(isset($_POST['site_name']))
{
$site_name=$_POST['site_name'];
}
else { $site_name=""; }

if(isset($_POST['owner_name']))
{
$owner_name=$_POST['owner_name'];
}
else { $owner_name=""; }

if(isset($_POST['Company_name']))
{
$company_name=$_POST['Company_name'];
}
else { $company_name=""; }

if(isset($_POST['Subcontractor_name']))
{
$Subcontractor_name=$_POST['Subcontractor_name'];
}
else { $Subcontractor_name="";}

$site_id = $_POST['siteID'];
//$site_id = (array)$site_id;
$equipment_type = $_POST['equipmentTYPE'];
//$equipment_type = (array)$equipment_type;
$lat=$_POST['latitude'];
//$lat = (array)$lat;
$long=$_POST['longitude'];
//$long = (array)$long;
$height = $_POST['height'];
//$height = (array)$height;
$owner_contact = $_POST['ownerCONTACT'];
//$owner_contact = (array)$owner_contact;
$sub_contact = $_POST['subcontractorCONTACT'];
//$sub_contact = (array)$sub_contact;
$sub_company =$_POST[ 'subcontractorCOMPANY'];
//$sub_company = (array)$sub_company;$query_submit =$wpdb->get_results ("select site_info.siteID,site_info.siteNAME ,site_info.equipmentTYPE,site_coordinates.latitude,site_coordinates.longitude,site_coordinates.height ,owner_info.ownerNAME,owner_info.ownerCONTACT,company_info.companyNAME,subcontractor_info.subcontractorCOMPANY,subcontractor_info.subcontractorNAME,subcontractor_info.subcontractorCONTACT from `site_info`
LEFT JOIN `owner_info`
on site_info.ownerID = owner_info.ownerID
LEFT JOIN `company_info`
on site_info.companyID = company_info.companyID
LEFT JOIN `subcontractor_info`
on site_info.subcontractorID = subcontractor_info.subcontractorID
LEFT JOIN `site_coordinates`
on site_info.siteID=site_coordinates.siteID
where
site_info.siteNAME = ".$site_name."AND
owner_info.ownerNAME = ".$owner_name."AND
company_info.companyNAME = ".$company_name."AND
subcontractor_info.subcontractorNAME = ".$Subcontractor_name."" , ARRAY_A);
if($query_submit){
echo "<table width='30%' ";
echo     "<tr>";
echo         "<td>".$query_submit->siteNAME."</td>";
echo         "<td>".$query_submit->ownerNAME."</td>";
echo         "<td>".$query_submit->companyNAME."</td>";
echo         "<td>".$query_submit->subcontractorNAME."</td>";
echo         "<td>".$query_submit->siteID."</td>";
echo         "<td>".$query_submit->equipmentTYPE."</td>";
echo         "<td>".$query_submit->latitude."</td>";
echo         "<td>".$query_submit->longitude."</td>";
echo         "<td>".$query_submit->height."</td>";
echo         "<td>".$query_submit->ownerCONTACT."</td>";
echo         "<td>".$query_submit->subcontractorCONTACT."</td>";
echo         "<td>".$query_submit->subcontractorCOMPANY."</td>";
echo     "</tr>";
echo "</table>";
} else {
echo "query is not worked";
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector