【问题标题】:difficulties with the php part of JOIN of one-to-many relational database一对多关系数据库JOIN的php部分的困难
【发布时间】:2011-08-29 18:25:46
【问题描述】:

我认为我的数据库中的 MySQL 部分是正确的。经过大量研究,我创建了一个 InnoDB 数据库,其中包含两个表:Venues 和 Events。

每个场地都有一个我编制索引的唯一 ID (VENUE_ID)。然后每个事件都有一个名为 VENUE_LOCATION 的列,其中包含事件所属场地的 ID 号。 这就是我设置事件表的方式:)

我认为这一切都很好,现在我在使用 php 显示所有数据时遇到问题:/

到目前为止,我已经完成了一些简单的事情,例如从单个表中选择数据,但我不知道如何从事件表中检索信息,并根据数字从 VENUES 插入所有相应信息位于“VENUE_LOCATION”。

我确实搜索了很多示例和教程,但我没有找到任何能准确显示我想要做什么的东西。任何关于我应该采取哪个方向的提示都非常感谢:)! 再次感谢

编辑: 这是我现在拥有的

<?php

$dbuser="nightl7_main";
$dbpass="mypw";
$dbname="nightl7_complete";  //the name of the database
$chandle = mysql_connect("localhost", $dbuser, $dbpass) 
    or die("Connection Failure to Database");
mysql_select_db($dbname, $chandle) or die ($dbname . " Database not found. " . $dbuser);


$result = mysql_query("SELECT * FROM example")
or die(mysql_error());  
return $result;


?>

【问题讨论】:

  • 你需要JOINSELECT语句中的两个表:sqlzoo.net/3b.htm
  • 顺便说一句:START_TIME 和 END_TIME 存储为 09AM 还是 06AM?如果有机会,请注意这样的事情,即您曾经拥有国际观众(如欧洲各地)或不同时区(如美国各地)。以绝对格式更好地存储时间和日期,例如1997-07-16T19:20:30+01:00, W3C notation
  • 您没有从 MySQL 中捕获错误,这将为您提供有关您的查询的相关详细信息...
  • 试过了,但没有运气 SELECT * FROM events INNER JOIN places ON events.VENUE_LOCATION=venues.VENUE_ID 也许我设置的数据库键有误?

标签: php mysql mysql-error-1064


【解决方案1】:
SELECT e.*, v.* FROM Events e
INNER JOIN Venues v ON e.VENUE_LOCATION = v.VENUE_ID

这将选择事件的所有信息以及事件发生地点的所有信息。


编辑

这是您可以用于初学者的 PHP 代码:

<?php

$dbuser = 'nightl7_main';
$dbpass = 'mypw';
$dbname = 'nightl7_complete';  //the name of the database
$chandle = mysql_connect('localhost', $dbuser, $dbpass)
    or die('Connection Failure to Database');
mysql_select_db($dbname, $chandle) or die ($dbname . ' Database not found. ' . $dbuser);

$query = 'SELECT e.*, v.* FROM Events e '.
         'INNER JOIN Venues v ON e.VENUE_LOCATION = v.VENUE_ID';
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
    echo $row['ID'].' '.$row['VENUE_LOCATION'].' '.$row['IMAGE_URL'].'<br />'; // access any column you like here
}
?>

【讨论】:

  • 谢谢 Shef :) 我可以再寻求帮助吗?我根据您的帮助创建了这个 php 代码,结果是一个空页面:/ 我在上面的帖子中发布了代码以便于阅读。谢谢:)
  • 嗨 OMG Ponies,感谢您的回复 :) 但是,当我在 google 搜索“php ON 子句”时,我得到的只是 WHERE 子句的结果:/您介意更深入地解释一下错误吗请?给您添麻烦了!
  • @pufAmuf:我忘记了 ON 子句以使查询起作用(正如 OMG Ponies 所提到的)。编辑您的问题以添加 PHP 代码,以便我们也可以提供帮助。
  • 嗨,Shef,我已经添加了上面的 php 代码 - 对其进行了一些小改动。
  • 谢谢谢夫!我实际上对此感到疑惑——我是否需要“回显”我想要展示的所有内容?我试图在任何地方找到一个代码,它只会获取所有列并打印它们,但我没有成功。
猜你喜欢
  • 2015-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-30
  • 1970-01-01
  • 2014-11-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多