$sql = mysql_query("
SELECT *
FROM forum_posts
LEFT JOIN mymembers ON forum_posts.post_author_id = mymembers.id
WHERE section_id='$sid' ORDER BY date_time DESC LIMIT 25
");
$dynamicList = "";
$numRows = mysql_num_rows($sql);
while($row = mysql_fetch_array($sql)){
$reply_author_id = $row["post_author_id"];
$author = $row["username"];
$id = $row["id"];
$anon = $row["anon"];
$post_body=$row["post_body"];
$post_author_id = $row["post_author_id"];
$date_time = $row["date_time"];
$thread_title = $row["thread_title"];
这是我正在执行的mysql查询。问题是表mymembers和forum_posts都有id字段,所以当我使用$ id并保存'id'时,成员的id存储在其中。以下是我正在展示的代码
$displayList .= '<a href="view_thread1.php?id=' . $id .'">
'。 $ thread_title。 ''。 $ author。';
我想将$ reply_author中的成员的id和线程的id保存到$ id变量中。
有没有办法可以在不更改表格中的列名的情况下完成。
完成更改查询的工作。现在代码看起来像
$sql = mysql_query(
"SELECT forum_posts.post_author_id AS post_author_id, forum_posts.id AS id, mymembers.username, forum_posts.anon,forum_posts.post_body,forum_posts.thread_title, forum_posts.date_time FROM forum_posts LEFT JOIN mymembers ON forum_posts.post_author_id=mymembers.id WHERE section_id='$sid' ORDER BY date_time DESC LIMIT 25");
答案 0 :(得分:3)
这样做的最佳做法是列出查询中的所有字段。
而不是使用SELECT *将其更改为:
SELECT mymembers.id as id, forum_posts.id as fpID, etc...
答案 1 :(得分:0)
无需更改数据库中的列名,只需在查询中重命名:
SELECT members.id as reply_author
members.username,
[... other membes columns listed as the above ...]
forum_posts.*
FROM forum_posts
LEFT JOIN mymembers
ON forum_posts.post_author_id = mymembers.id
WHERE section_id = '$sid'
ORDER BY date_time DESC
LIMIT 25