Php sql查询不会检索所有记录,只检索最后一条记录

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

在WordPress和GoogleMapAPI上使用PHP和MYSQL从MYSQL数据库检索数据,并在GoogleMap上显示带有信息窗口的标记

问题是地图没有出现在网页上,而SQL查询正在检索所需的数据

其中我有SQL查询:

检索数据并将其显示在表中的

示例i有3条记录必须根据用户选择显示 但是查询只显示最后一条记录,而不是3条记录

其中是查询中的错误:

查询:
将表行移到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>";