使用另一个表中的数据从表中选择数据

时间:2019-11-22 12:08:02

标签: php mysql

我有2个表格,一个叫做公司(列:标题,财务,地址,电话...。),另一个叫投资(列:标题,预算...。)。

两个表示例中的title值相同:两个表中都存储有Google Inc.作为标题。

我要做的就是将标题为关键字的数据从“投资”表显示到名为“公司资料”的页面。

companies-profile页面显示了基于我从另一个页面(显示所有公司)的ID中获得的数据。

我使用以下代码:

<?php

    $var1 = "SELECT title 
            FROM companies 
            WHERE idcompanies='$ID'";

    $result2 = mysqli_query($conn, "SELECT budget 
                                    FROM n4399 
                                    WHERE title='{$var1}'") 
                or die(mysqli_error($conn));

    $row2   = mysqli_fetch_array($result2);
    echo $row2['budget'];

?>

$ conn被声明并且数据库连接正常

我正在:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以在第1行的'2'“附近使用正确的语法

2是用户选择的ID 使用xamp

2 个答案:

答案 0 :(得分:2)

您可以使用一个查询

SELECT budget 
FROM companies 
INNER JOIN n4399 ON companies.Title=n4399.title
WHERE companies.id = ?

并使用适当的准备好的语句并进行绑定

$stmt = $conn->prepare("SELECT budget 
        FROM companies 
        INNER JOIN n4399 ON companies.Title=n4399.title
        WHERE companies.id = ?");
$stmt->bind_param("i", $ID);
$stmt->execute();

// 
$result = $stmt->get_result();
while($row = $result->fetch_assoc()) {
  echo $row['budget'];
}

答案 1 :(得分:0)

您正在尝试执行以下sql语句:

SELECT budget 
  FROM n4399 
 WHERE title='SELECT title 
        FROM companies 
        WHERE idcompanies='$ID''

以下两种之一:或者您首先执行firs句子(从公司中选择标题...)以获得公司的有效标题,或者可以将选择内容更改为:

SELECT budget 
  FROM n4399 
 WHERE title in (SELECT title 
        FROM companies 
        WHERE idcompanies='$ID')

以便该选择可以返回第二个选择中具有匹配标题的所有值。