Php sql查询不会检索所有记录,只检索最后一条记录
在WordPress和GoogleMapAPI上使用PHP和MYSQL从MYSQL数据库检索数据,并在GoogleMap上显示带有信息窗口的标记 问题是地图没有出现在网页上,而SQL查询正在检索所需的数据 其中我有SQL查询: 检索数据并将其显示在表中的 示例i有3条记录必须根据用户选择显示 但是查询只显示最后一条记录,而不是3条记录 其中是查询中的错误: 查询:Php sql查询不会检索所有记录,只检索最后一条记录,php,mysql,left-join,Php,Mysql,Left Join,在WordPress和GoogleMapAPI上使用PHP和MYSQL从MYSQL数据库检索数据,并在GoogleMap上显示带有信息窗口的标记 问题是地图没有出现在网页上,而SQL查询正在检索所需的数据 其中我有SQL查询: 检索数据并将其显示在表中的 示例i有3条记录必须根据用户选择显示 但是查询只显示最后一条记录,而不是3条记录 其中是查询中的错误: 查询: 将表行移到while循环中,并将标题行移到循环之前,然后将看到所有数据,而不仅仅是最后一行 $sql = $wpdb->pre
将表行移到while循环中,并将标题行移到循环之前,然后将看到所有数据,而不仅仅是最后一行
$sql = $wpdb->prepare("select i.siteID
, i.siteNAME, i.equipmentTYPE, c.latitude
, c.longitude, c.height , o.ownerNAME
, o.ownerCONTACT, x.companyNAME, y.subcontractorCOMPANY
, y.subcontractorNAME, y.subcontractorCONTACT
from site_info i
LEFT JOIN owner_info o on i.ownerID = o.ownerID
LEFT JOIN company_info x on i.companyID = x.companyID
LEFT JOIN subcontractor_info y on i.subcontractorID = y.subcontractorID
LEFT JOIN site_coordinates2 c on i.siteID=c.siteID
where i.siteNAME = %s
AND o.ownerNAME = %s
AND x.companyNAME = %s
",$site_name,$owner_name,$company_name);
$query_submit =$wpdb->get_results($sql, OBJECT);
echo "<br>";
echo "<br>";
// table that will dsiplay the results based on the user's selection //
echo "<table width='30%' ";
echo "<tr>";
echo "<td>Site Name</td>";
echo "<td>Owner Name</td>";
echo "<td>Company Name</td>";
echo "<td>Subcontractor Name</td>";
echo "<td>Site ID</td>";
echo "<td>Equipment Type</td>";
echo "<td> Lattitude</td>";
echo "<td>Longitude </td>";
echo "<td> Height</td>";
echo "<td> Owner Contact</td>";
echo "<td> Sub Contact</td>";
echo "<td> Sub company Name</td>";
echo "</tr>";
foreach ($query_submit as $obj) {
echo "<tr>";
echo "<td>".$obj->siteNAME."</td>";
echo "<td>".$obj->ownerNAME."</td>";
echo "<td>".$obj->companyNAME."</td>";
echo "<td>".$obj->subcontractorNAME."</td>";
echo "<td>".$obj->siteID."</td>";
echo "<td>".$obj->equipmentTYPE."</td>";
echo "<td>".$obj->latitude."</td>";
echo "<td>".$obj->longitude."</td>";
echo "<td>".$obj->height."</td>";
echo "<td>".$obj->ownerCONTACT."</td>";
echo "<td>".$obj->subcontractorCONTACT."</td>";
echo "<td>".$obj->subcontractorCOMPANY."</td>";
echo "</tr>";
}
echo '</table>';
?>
如果仔细查看代码,您将看到foreach循环不断地为$obj分配不同的属性值。 但你没有把他们说出来。所以什么也不会出现。 然后,当循环结束时,$obj具有表的最后一行的属性值。然后你就回应了他们 您需要做的是回显foreach循环中的表行。因此,一旦它将值分配给$obj,您就会回显它们 循环结束后,关闭桌子
echo "<table width='30%'>";
echo "<tr>";
echo "<td>Site Name</td>";
echo "<td>Owner Name</td>";
echo "<td>Company Name</td>";
echo "<td>Subcontractor Name</td>";
echo "<td>Site ID</td>";
echo "<td>Equipment Type</td>";
echo "<td> Lattitude</td>";
echo "<td>Longitude </td>";
echo "<td> Height</td>";
echo "<td> Owner Contact</td>";
echo "<td> Sub Contact</td>";
echo "<td> Sub company Name</td>";
echo "</tr>";
foreach ($query_submit as $obj) {
$obj->siteNAME;
$obj->ownerNAME;
$obj->companyNAME;
$obj->subcontractorNAME;
$obj->siteID;
$obj->equipmentTYPE;
$obj->latitude;
$obj->longitude;
$obj->height;
$obj->ownerCONTACT;
$obj->subcontractorCONTACT;
$obj->subcontractorCOMPANY;
echo "<tr>";
echo "<td>".$obj->siteNAME."</td>";
echo "<td>".$obj->ownerNAME."</td>";
echo "<td>".$obj->companyNAME."</td>";
echo "<td>".$obj->subcontractorNAME."</td>";
echo "<td>".$obj->siteID."</td>";
echo "<td>".$obj->equipmentTYPE."</td>";
echo "<td>".$obj->latitude."</td>";
echo "<td>".$obj->longitude."</td>";
echo "<td>".$obj->height."</td>";
echo "<td>".$obj->ownerCONTACT."</td>";
echo "<td>".$obj->subcontractorCONTACT."</td>";
echo "<td>".$obj->subcontractorCOMPANY."</td>";
echo "</tr>";
}
echo "</table>";
foreach结束后,$obj存储最后一个值。这是一个真实的repost@Fred ii-@Fred ii-相同的代码,不同的问题。OP当时还没有意识到这个问题suppose@RiggsFolly我摆姿势。@Fred ii-是的。。。我错了。如果你愿意的话,你可以复制这个。我已经复制了另一个问题的答案
echo "<table width='30%'>";
echo "<tr>";
echo "<td>Site Name</td>";
echo "<td>Owner Name</td>";
echo "<td>Company Name</td>";
echo "<td>Subcontractor Name</td>";
echo "<td>Site ID</td>";
echo "<td>Equipment Type</td>";
echo "<td> Lattitude</td>";
echo "<td>Longitude </td>";
echo "<td> Height</td>";
echo "<td> Owner Contact</td>";
echo "<td> Sub Contact</td>";
echo "<td> Sub company Name</td>";
echo "</tr>";
foreach ($query_submit as $obj) {
$obj->siteNAME;
$obj->ownerNAME;
$obj->companyNAME;
$obj->subcontractorNAME;
$obj->siteID;
$obj->equipmentTYPE;
$obj->latitude;
$obj->longitude;
$obj->height;
$obj->ownerCONTACT;
$obj->subcontractorCONTACT;
$obj->subcontractorCOMPANY;
echo "<tr>";
echo "<td>".$obj->siteNAME."</td>";
echo "<td>".$obj->ownerNAME."</td>";
echo "<td>".$obj->companyNAME."</td>";
echo "<td>".$obj->subcontractorNAME."</td>";
echo "<td>".$obj->siteID."</td>";
echo "<td>".$obj->equipmentTYPE."</td>";
echo "<td>".$obj->latitude."</td>";
echo "<td>".$obj->longitude."</td>";
echo "<td>".$obj->height."</td>";
echo "<td>".$obj->ownerCONTACT."</td>";
echo "<td>".$obj->subcontractorCONTACT."</td>";
echo "<td>".$obj->subcontractorCOMPANY."</td>";
echo "</tr>";
}
echo "</table>";