Php 从第二个表返回搜索结果

Php 从第二个表返回搜索结果,php,mysql,sql,select,Php,Mysql,Sql,Select,我有两张桌子,化学品和消耗品。化学品储存关于化学品配方、安全性等的所有一般信息,耗材储存关于各个房间的库存和位置等信息。 公共字段是CAS化学文摘服务注册号-数字和连字符的组合 我想搜索化学品表并从两个表返回信息 问题1-我应该将它们加入到数据库Navicat中,还是仅仅通过php查询 问题2-为什么下面的代码不起作用 $item = $_POST['item']; $chem = mysql_query(" SELECT * FROM Chemicals INNER JOIN Consum

我有两张桌子,化学品和消耗品。化学品储存关于化学品配方、安全性等的所有一般信息,耗材储存关于各个房间的库存和位置等信息。 公共字段是CAS化学文摘服务注册号-数字和连字符的组合

我想搜索化学品表并从两个表返回信息

问题1-我应该将它们加入到数据库Navicat中,还是仅仅通过php查询

问题2-为什么下面的代码不起作用

$item = $_POST['item'];

$chem = mysql_query("
SELECT * 
FROM Chemicals
INNER JOIN Consumables 
ON Chemicals.Name_Chem1 = '%$item%'");

while ($row = mysql_fetch_array($chem)){

echo
"<table border='0'>
<tr class='content'>
<th>Name</th>
<th>Quantity</th>
<th>GHS Code</th>
<th>Formula</th>
<th>CAS</th>

</tr>";

while($row = mysql_fetch_array($chem))
{

 echo "<tr>";

echo "<td class='content'>" . $row['Consumables.Name'] . "</td>";
echo "<td class='content'>" . $row['Consumables.Quantity'] . "</td>";
echo "<td class='content'>" . $row['Chemicals.GHS_1'] . "</td>";
echo "<td class='content'>" . $row['Chemicals.Formula'] . "</td>";
echo "<td class='content'>" . $row['CAS'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
A1。加入他们

A2。既然您已经提到它们的公共列称为CAS,那么您应该在on子句中定义它们,例如

SELECT  a.*, b.*
FROM    Chemicals a
        INNER JOIN Consumables b
            ON a.CAS = b.CAS
WHERE   a.Name_Chem1 = '%$item%'
作为旁注,如果值来自外部,则SQL注入会使查询易受攻击。请看下面的文章,了解如何预防它。通过使用PreparedStatements,可以避免在值周围使用单引号

A1。加入他们

A2。既然您已经提到它们的公共列称为CAS,那么您应该在on子句中定义它们,例如

SELECT  a.*, b.*
FROM    Chemicals a
        INNER JOIN Consumables b
            ON a.CAS = b.CAS
WHERE   a.Name_Chem1 = '%$item%'
作为旁注,如果值来自外部,则SQL注入会使查询易受攻击。请看下面的文章,了解如何预防它。通过使用PreparedStatements,可以避免在值周围使用单引号