如何从数据库中检索数据并将其显示在表中
我正在使用WordPress和全局类$ wpdb以便从MySQL数据库检索数据并将结果显示在表中。如何从数据库中检索数据并将其显示在表中
我有4个下拉列表,允许用户选择所需的输入,然后根据所选输入系统显示用户选择的所有相关数据。
当我尝试运行它显示错误的代码:
通知:Array对字符串的转换
的码第一部分:
<?php
/*
Template Name: search info
*/
get_header();
?>
<?php
// code for submit button ation
global $wpdb,$_POST;
//variables that handle the retrieved data from mysql database
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'];
$equipment_type = ['equipmentTYPE'];
$lat=['latitude'];
$long=['longitude'];
$height = ['height'];
$owner_contact = ['ownerCONTACT'];
$sub_contact = ['subcontractorCONTACT'];
$sub_company = ['subcontractorCOMPANY'];
if(isset($_POST['query_submit']))
{
//query to reteive 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`
");
?>
<table width="30%" >
<tr>
<td>Site Name</td>
<td>Owner Name</td>
<td>Company Name</td>
<td>Subcontractor Name</td>
</tr>
<tr>
<td><?php echo $site_name ; ?></td>
<td><?php echo $owner_name ; ?></td>
<td><?php echo $company_name ; ?></td>
<td><?php echo $Subcontractor_name ; ?></td>
<td><?php echo $site_id ; ?></td>
<td><?php echo $equipment_type ; ?></td>
<td><?php echo $lat ; ?></td>
<td><?php echo $long ; ?></td>
<td><?php echo $height ; ?></td>
<td><?php echo $owner_contact ; ?></td>
<td><?php echo $sub_contact ; ?></td>
<td><?php echo $sub_company ; ?></td>
</tr>
</table>
<?php } ?>
第二部分代码用于从数据库检索数据并将其包含在下拉列表中。
我会很感激任何帮助。
你可以摆脱“Array to string conversion”错误很容易。
在这些线路,要创建数组:
$site_id = ['siteID'];
$equipment_type = ['equipmentTYPE'];
$lat=['latitude'];
...
$sub_company = ['subcontractorCOMPANY'];
...您稍后尝试呼应。你根本无法回显数组。
只要改变以上是字符串,而不是:
$site_id = 'siteID';
$equipment_type = 'equipmentTYPE';
$lat = 'latitude';
...
$sub_company = 'subcontractorCOMPANY';
注:正如其他人已经指出的那样,你的代码是敞开的,以SQL注入。在任何查询中使用它之前,你都应该真的逃避你的数据。
我做了你在你的答案建议这个修复错误,但我仍然无法检索请求的数据** ** query_submit ** –
@NabilJaroush - '= \' $ site_name \''
<table border="1">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Points</th>
</tr>
<?php
global $wpdb;
$result = $wpdb->get_results ("SELECT * FROM myTable");
foreach ($result as $print) {
?>
<tr>
<td><?php echo $print->firstname;?></td>
</tr>
<?php }
这是... 。 什么? –
你的代码是在SQL注入的主要风险 – Option
[参考? - 这是什么错误PHP意味着]的可能的复制(http://stackoverflow.com/questions/12769982/reference-what-does -this-error-mean-in-php) –
是的我知道我需要知道的是能够检索所需的数据比我会微调代码以防止sql注入和其他可能的攻击 –