2013-01-07 49 views
1

我已经搜索了我的问题,但没有人似乎回答我的特殊需求。这是一个简单的表连接,但我尝试过的每件事都失败了。也许你可以帮忙。注意:所有行都有POSTS中的post_id,但并非所有post_ids都与CALENDAR相关,即并非所有帖子都有日历条目。我在PHP中使用MYSQL,而不是MYSQLi。MYSQL表加入PHP

POST_CAT- POST_ID,CAT_ID POSTS- POST_ID,标题,描述 日历 - POST_ID,on_date,TO_DATE

目前我找到相关post_ids通过多对多的选择,那么用于循环输出一系列的从一张桌子。这工作。但我需要在一个阵列相关POST_ID日历项:

mysql_connect("localhost", "root", "root") or die(mysql_error()); 
mysql_select_db("adamsmap_db") or die(mysql_error()); 

if (isset($_POST['activities'])) { 

$post_id = mysql_query("SELECT post_id FROM post_cat WHERE cat_id = '1'"); 
    while ($row = mysql_fetch_array($post_id, MYSQL_NUM)) { 

    for ($i=0;$i < count($row); $i++) { 

$output = mysql_query("SELECT user_id, title, description FROM posts WHERE post_id='$row[$i]'"); 
    while ($rowoutput = mysql_fetch_array($output, MYSQL_NUM)) { 

    for($i=0;$i < count($rowoutput);$i++) { 

echo $rowoutput[$i]."&nbsp"; 

} 

echo"<br /> <br />"; 

}}}}  
+3

让未来的用户看到您的问题。如果你知道这一点,太棒了! [**请不要在新代码中使用'mysql_ *'函数**](http://bit.ly/phpmsql)。他们不再被维护,[弃用过程](http://j.mp/Rj2iVR)已经开始。看到[**红框**](http://j.mp/Te9zIL)?学习[*准备的语句*](http://j.mp/T9hLWi),并使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli) - [这篇文章](http://j.mp/QEx8IB)将帮助你决定哪个。如果你选择PDO,[这里是一个很好的教程](http://j.mp/PoWehJ)。 – Jeremy1026

回答

1

这个查询将复制在编写了业务逻辑和日历信息:

SELECT 
    zpc.ost_id, p.user_id, p.title, p.description, c.* 
FROM Z_post_cat zpc 
INNER JOIN posts p ON zpc.post_id = p.post_id 
INNER JOIN calendar c ON c.post_id = = p.post_id 
WHERE zpc.cat_id = '1' 

如果您希望包括没有帖子的类别使用LEFT JOIN而不是INNER JOIN。

此外,由于安全考虑,建议您转移到PDO或Mysqli而不是mysql。

+0

这将选择有关post_id的日历信息? – user1753012

+0

编辑包括日历表 – dethtron5000

+0

哦谢谢生病尝试 – user1753012