douliao7354 2014-01-20 17:40 采纳率: 0%
浏览 13
已采纳

如果两个表都不常见,请加入drops变量

I have two tables and the commonality is the tid. the $tid is the primary key for tourneys and if it is in team_tourney then the team selected it. The code below echos everything if a team selected it but drops only the variable $tid for every non selected item. How would you suggest I work around my delema.

tables
    team_tourneys
    tourneys

my sql is

$myChoice=@mysql_query("SELECT * 
    FROM  tourneys
    LEFT JOIN team_tourneys
    ON tourneys.tid = team_tourneys.tid
    WHERE  tourney_state = '$region' AND tourney_start_date >= now()
    GROUP BY tourneys.tid ORDER BY tourney_start_date ASC
"); 

if (!$myChoice)
{ 
    die('<p>Error fetching Tourney details: ' . 
    mysql_error() . '</p>'); 
} 

while ($choice = mysql_fetch_array($myChoice))
{
    $tid = $choice['tid'];
    $tourney_name = $choice['tourney_name'];
    echo '<a href="http://www.mydomain.com/tournament-local.php?&tid='.$tid.'" class="red">'.$tourney_name.'</a></div>'
}
  • 写回答

1条回答 默认 最新

  • douluoyou9876 2014-01-20 17:54
    关注

    Since you are fetching into an associative array you only have one slot for any selected column name (or alias). In other words, you can not have:

    array(
        "tid" => 1,
        "tid" => 2,
    );
    

    Your query is going to return all columns of all referenced tables in the order the tables are listed. Since the both tables contain tid and team_tourneys is the last table referenced, $choice["tid"] will contain team_tourneys.tid which of course can be NULL due to the LEFT JOIN.

    Probably the easiest way to resolve this is to read the tourneys table last:

    SELECT team_tourneys.*, tourneys.*
    FROM tourneys
    LEFT JOIN team_tourneys
    ON tourneys.tid = team_tourneys.tid
    WHERE tourney_state = '$region' AND tourney_start_date >= now()
    GROUP BY tourneys.tid ORDER BY tourney_start_date ASC;
    

    You should really enter each column name individually, however. It's bad practice to use *.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部