【发布时间】:2017-02-20 08:10:28
【问题描述】:
我在 WordPress 上使用 MYSQL 和 PHP 以从数据库中检索数据,但使用 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>";
?>
【问题讨论】:
-
尝试使用 var_dump 检查输出。使用
var_dump($query_submit)告诉我它的输出是什么。 -
这是调用字符串的正确格式吗
$query_submit ['ownerNAME']$query_submit和['ownerNAME']之间有一个空格 -
我试过 var_dump($query_submit) 它显示 array(0) { } 但我尝试在 phpmyadmin 中查询它返回所需的值
-
@NabilJaroush 问题出在
$site_id = ['siteID'];这里你使用数组作为字符串,因为错误就在这里。我无法弄清楚到底应该在那里。 -
此字段将根据用户从 4 下拉列表中的选择处理多个值
标签: php mysql error-handling echo