【问题标题】:How to Get VALUES from another table into another table in PHP/MySQL如何从另一个表中获取 VALUES 到 PHP/MySQL 中的另一个表中
【发布时间】:2015-11-10 03:06:13
【问题描述】:

首先我应该说我的英语并不完美。 我正在使用 XAMPP 5.6.0.0

我有两张桌子,servicesservices_cat

    -- Table structure for table `services_cat`

    CREATE TABLE IF NOT EXISTS `services_cat` 
   (`ser_cat_id` int(11) NOT NULL,
    `service_category` varchar(50) NOT NULL)

    -- Table structure for table `services`

    CREATE TABLE IF NOT EXISTS `services` 
    (`service_id` int(11) NOT NULL,
     `scid` int(11) NOT NULL,
     `service_title` varchar(50) NOT NULL,
     `service_statement` varchar(1000) NOT NULL,
     `service_photo` varchar(100) NOT NULL)

我想在一张表中显示以下数据。

service_id
ser_cat_id
service_category
service_title
service_statement

ser_cat_idservice_idPRIMARY KEYs。

这里将ser_cat_id 保存到services 表中的scid。此ser_cat_idscid 栏中多次保存。但是service_title 将被更改。 service_title 有不同的类型,但 scid 对于不同的service_titles 是相同的。 scid 来自ser_cat_id 来自services_cat 表。

我可以将ser_cat_idservice_cat 表传递给scid,然后我可以获取(显示)scid。但我想显示 ser_cat_id 的 DISTINCT service_category 名称(与 services 表中的 scid 相同)。

你能帮帮我吗..

以下是我的代码。

    <?php
    include_once("conn.php");

    $sql = mysql_query("SELECT * FROM services_cat JOIN services ON services_cat.ser_cat_id = services.service_id GROUP BY service_category ");
    while($row = mysql_fetch_object($sql))
    {

        echo "<tr>
        <td><p class='table-p'>$row->scid</p></td>
        <td><p class='table-p'>$row->ser_cat_id</p></td>
        <td><p class='table-p'>$row->service_category = $row->scid</p></td>
        <td><p class='table-p'>$row->service_title</p></td>
        <td><p class='table-p'>$row->service_statement</p></td>

        <td><p class='table-p'><a href='service_edit.php?ide=$row->service_id'>Edit</a> |
        <a href='service_delete.php?idd=$row->service_id'>Delete</a></p></td>
        ";
    }
    ?>

【问题讨论】:

  • 一个ser_cat_id可能有几个service_category?否则你的查询是正确的。我相信你想收到 DISTINCT service_title 而不是 service_category
  • 不是services_cat.ser_cat_id = services.scid 吗?
  • ser_cat_id 有很多 service_category Ex :: ser_cat_id = 1 service_category = Decoration ,,,,,, ser_cat_id = 2 @987654362 Dressing ...... ser_cat_id = 3 service_category = Dancing 等等..
  • ser_cat_id 是 services_cat 的主键。 scid 是服务表中的相关外键。正如@Berriel 所说,这些表之间的所有连接都应使用ON services_cat.ser_cat_id = services.scid。因此,您执行的任何联合查询都将具有这两个字段的相同值。
  • 否 .. 输出表不是 DB 表。它的临时表用于显示数据库表中的数据。

标签: php mysql html-table


【解决方案1】:

根据您的需要,这就是您所需要的:

SELECT s.service_id, c.ser_cat_id, c.service_category, s.service_title, s.service_statement 
FROM services_cat AS c 
INNER JOIN services AS s 
  ON c.ser_cat_id = s.scid 

检查这个运行示例:http://sqlfiddle.com/#!9/013f7/3/0

在您的循环中,您的$row 将根据您的需要拥有这些数据。

$row['service_id']
$row['ser_cat_id']
$row['service_category']
$row['service_title']
$row['service_statement']

【讨论】:

  • 出色的表现贝里尔爵士!!!!!!你是伟大的...... WoooooooooooooW 这就是我需要的......它正在工作......非常出色......你真的很棒......谢谢你Sooooooo 非常:) :) :) 我明白了想法我在我的代码中错过了什么.. 再次感谢 1000 次 :)
【解决方案2】:

尝试改变,

$sql = mysql_query("SELECT * FROM services_cat JOIN services ON services_cat.ser_cat_id = services.service_id GROUP BY service_category ");

$sql = mysql_query("SELECT * FROM services_cat JOIN services ON services_cat.ser_cat_id = services.scid GROUP BY service_category ");

【讨论】:

  • 然后while循环不起作用:( ..根据service_category只显示04个项目。因为service_category有04个值。
猜你喜欢
  • 1970-01-01
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-14
  • 2021-10-19
  • 2016-09-28
相关资源
最近更新 更多