代码之家  ›  专栏  ›  技术社区  ›  alecnash

如何用SQL和PHP连接两个表

  •  1
  • alecnash  · 技术社区  · 15 年前

    我对SQL和PHP有点陌生,所以我需要一些帮助。我创建了两个表,我想建立一个“一对多关系”,但我不知道如何通过php文件提供数据。下面是一些代码:

       CREATE TABLE `details` (
      `details_id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(30) NOT NULL,
      `latitude` double NOT NULL,
      `longitude` double NOT NULL,
      `mytext` varchar(60) NOT NULL,
      `description` varchar(600) NOT NULL,
      `city_details` int(11) NOT NULL,
      PRIMARY KEY (`details_id`),
      FOREIGN KEY (`city_details`) REFERENCES city(`city_id`)
      on update cascade
    );
    
    CREATE TABLE  `city` (
      `city_id` int(11) NOT NULL AUTO_INCREMENT,
       `cityName` varchar(30) NOT NULL,
      PRIMARY KEY (`city_id`)
    );
    

    所以我想写一个cityname,然后能够为城市的各个地方提供一些数据。我如何创建一个PHP文件,以便只需给出城市的名称(到表城市),然后为城市中的多个位置编写内容(到表详细信息)。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Christian Smorra    15 年前
    $sql="SELECT * FROM `details` as d INNER JOIN `city` as c ON d.city_details=c.city_id;";
    

    如果你想找一个城市名,你可以用这个

    $sql="SELECT * FROM `details` as d INNER JOIN `city` as c ON d.city_details=c.city_id WHERE c.cityName='The name you're looking for'";
    

    然后使用此代码从表中获取每个时间

    while($row=mysql_fetch_assoc(mysql_query($sql))){
      echo $row['name']; //for name
      echo $row['mytext']; //etc.
    }
    

    有关详细信息,请参阅 http://dev.mysql.com/doc/refman/5.1/en/join.html http://php.net/manual/en/function.mysql-fetch-assoc.php