Php 使用id从两个表中获取数据

Php 使用id从两个表中获取数据,php,Php,我想使用onclick Id显示两个表中的元素。 这些是我的桌子: 项目技术: project_tech_id project_tech_name 1 Mechanical 2 Civil 3 Computers 项目详细信息: id title content project_tech_id 1 sample abcd

我想使用onclick Id显示两个表中的元素。 这些是我的桌子:

项目技术:

project_tech_id  project_tech_name
        1            Mechanical
        2            Civil
        3            Computers
项目详细信息:

id      title       content       project_tech_id
 1     sample        abcd              3
 2     sample2       efgh              1
 3     sample3       xyz               3
使用project_tech_id的两个表之间存在关系。这些值使用表单插入到project_详细信息中。 现在我想显示标题、内容、项目技术名称,其中project\u tect\u id=3 from project\u detai table表示我想显示两列数据。。。 如何使用一个查询显示此内容。。 实际上,我正在使用此查询,但我遇到了错误:

$prj_id = $_GET['id'];

$sql = mysql_query("SELECT pt.project_tech_name,
    pd.title, 
    pd.content,
    pd.video_url,
    FROM
      project_details pd,
      project_tech pt
      WHERE
      pt.project_tech_Id = pd.project_tech_Id AND
      pt.project_tech_Id in" .$prj_id);

请…帮助我…

您应该使用=而不是在中尝试执行它

mysql_query("SELECT pt.project_tech_name,pd.title,pd.content,pd.video_url
    FROM
      project_details pd Left Join project_tech pt
      ON
      pt.project_tech_Id = pd.project_tech_Id AND
      pt.project_tech_Id = " .$prj_id);

使用JOIN可以这样做:

$prj_id = $_GET['id'];

$sql = mysql_query("SELECT pt.project_tech_name,
            pd.title, pd.content, pd.video_url
            FROM project_details pd JOIN project_tech pt
            ON pd.project_tech_id = pt.project_tech_id
            WHERE pt.project_tech_Id = {$prj_id}");


//我刚刚从子句中删除了
前面的逗号,您的查询可以是:这是一个优化的on,因为它使用左连接

$sql = mysql_query("SELECT pt.project_tech_name,
    pd.title, 
    pd.content,
    pd.video_url,
    FROM project_details pd
     LEFT JOIN project_tech pt 
      ON pt.project_tech_Id = pd.project_tech_Id
    WHERE  pt.project_tech_Id = {$prj_id} ");

在SQL查询中,有一个字段名“pd.video_url”,它不在表结构中,并且在该字段值后面有一个额外的逗号(,)

第二个问题是,使用“=”而不是“in”

如果有多个“project\u tech\u Id”,那么您可以像这样使用“in”

试试这个:

"SELECT 
project_tech.project_tech_name,
project_detail.title, 
project_detail.content,
project_detail.video_url

FROM project_tech
JOIN project_details
ON 
project_tech.project_tech_Id = project_details.project_tech_Id 
AND
project_tech.project_tech_Id = $prj_id"


首先查看MySQL的连接函数,您的代码易受攻击()。第二,不要使用不推荐的use或with。最后,您在“$prj_Id”
中的
后面缺少空格:“$prj_Id”中的
pt.project_tech_Id”
导致无效的sql查询(假设
$prj_Id==”(someidhereseparatedbycomma)
。@PLB:好的,我将使用PDO。在..@user2330772
var_dump($prj_Id)中给出空格afet后,仍然会出现相同的错误
然后看看里面有什么。请调试你的代码。:@PLB:谢谢,我在pd.video\u url之后删除了逗号。我想要的是如何显示两个数据表。为什么?两个都是比较运算符。为什么这个=比在中更好?谢谢,我得到了它…但是你能告诉我实际上我只得到了一列数据…但是我想要的id=3..表示两列s数据…谢谢我得到了…但是你能告诉我实际上我只得到了一列数据…但是我想要的是谁的id=3..意味着两列数据Hi请打印你得到的结果我认为它会正确执行它得到了两行数据但它可能会显示唯一一行,一旦你尝试打印($result)您可以找到如下打印的两条记录:$row=mysql_fetch_row($sql);echo$row[0];echo$row[1];echo$row[2];echo$row[3];而($res=mysql_fetch_array($result)){echo”“;print\r($res);}就像这样你得到你想要的o/p我得到了…但是显示单行…我想要显示多行谢谢我得到了…但是你能告诉我实际上我只得到了一列数据…但是我想要id=3的…意味着两列数据你说的“一列数据”是什么意思“?我用我的查询只得到一列数据,其中project\u tech\u id=3..但是你可以看到我的project\u detail表有两列带有该id谢谢我得到了…但是你能告诉我实际上我只得到了一列数据…但是我想要id=3..表示两列的数据吗?”data@user2330772$prj_id的价值是多少?结果取决于该值。其值为3…因此我想打印两列数据。。在project_detail中有两列具有该idtable@user2330772从您给user1578358的答案中,我可以看出您只显示了$sql的第一行(查询结果)。试着像
while($row=mysql\u fetch\u row($sql)){echo$row['id'];…}
谢谢,我得到了它…但是你能告诉我实际上我只得到了一列数据…但是我想要谁的id=3..意味着两列数据吗
$sql = mysql_query("SELECT pt.project_tech_name,
    pd.title, 
    pd.content,
    pd.video_url,
    FROM project_details pd
     LEFT JOIN project_tech pt 
      ON pt.project_tech_Id = pd.project_tech_Id
    WHERE  pt.project_tech_Id = {$prj_id} ");
$prj_id = (1,4,7,2);

$sql = mysql_query("SELECT pt.project_tech_name,
    pd.title, 
    pd.content,
    pd.video_url,
    FROM
      project_details pd,
      project_tech pt
      WHERE
      pt.project_tech_Id = pd.project_tech_Id AND
      pt.project_tech_Id in(" .$prj_id .")".);
"SELECT 
project_tech.project_tech_name,
project_detail.title, 
project_detail.content,
project_detail.video_url

FROM project_tech
JOIN project_details
ON 
project_tech.project_tech_Id = project_details.project_tech_Id 
AND
project_tech.project_tech_Id = $prj_id"