0

我有两个用户表;登录表和用户配置文件表。

我想将“userprofiletable”中的一个值与另一个名为帖子的表中的另一个值进行比较。如果值相等,则显示一个列表。

我有以下代码。问题是它没有将帖子表中的值与用户配置文件表中的会话值进行比较。

有人可以帮我吗?

<?php
$limit = '5';
$dbreq = 'SELECT * FROM `posts` ORDER BY `pos` DESC';
$dbdata = mysql_query($dbreq);
while($dbval = mysql_fetch_array($dbdata))
{
  if (($dbval['city'] == $_SESSION['student_city'])) { //checks for last 4 accomodation
    if ($limit >= '1') {
      echo '<tr><td><a href="acomod.php?view='.$dbval['id'].'">'.$dbval['title'].'</a></td></tr>';
      $limit = $limit -'1';
    }
  }
}
?>

我还想获取 userprofiletable 的值并将其发布在 posts 表中。例如,当有人发布新帖子时。

4

2 回答 2

0

这个问题不清楚,但可能有两个答案:

要重现您的代码,您可以在一个 sql 查询中执行:

$dbreq = 'SELECT *
FROM `posts`
WHERE city="'.mysql_real_escape_string($_SESSION['student_city']).'"
ORDER BY `pos` DESC
LIMIT 4'; 

但是,如果有两个表,那么您需要“LEFT JOIN”将帖子表链接到 userprofile 表

$dbreq = 'SELECT p.*, u.*
FROM posts p
LEFT JOIN userprofiletable up ON p.UserID=up.UserID
WHERE up.city="'.mysql_real_escape_string($_SESSION['student_city']).'"
ORDER BY p.pos DESC
LIMIT 4';

(上表中的UserID是posts表和userprofiletable中连接两者的字段名。)

于 2012-05-01T01:02:36.940 回答
0

你的帖子有点不清楚,但我认为这就是你想要的:

<?php
$userid = 11542;//Sample uid. You will have to figure this out and set it.
$limit = 5;
$dbreq = "SELECT * FROM `posts` WHERE `userid`=".$userid." ORDER BY `pos` DESC LIMIT=".$limit.";";
$dbdata = mysql_query($dbreq);
while($dbval = mysql_fetch_array($dbdata))
{
  if (($dbval['city'] == $_SESSION['student_city'])) { //checks for last 4 accomodation
    echo '<tr><td><a href="acomod.php?view='.$dbval['id'].'">'.$dbval['title'].'</a></td></tr>';
  }
}
?>
于 2012-05-01T00:56:03.253 回答