如何从第二个表中获取会话值?

时间:2012-05-01 00:44:21

标签: php

我有两张桌子供用户使用;登录表和用户配置文件表。

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

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

有人能帮帮我吗?

<?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表中。例如,当有人发表新帖时。

2 个答案:

答案 0 :(得分: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>';
  }
}
?>

答案 1 :(得分:0)

问题不明确,但可能有两个答案:

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

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

但是,如果有两个表,则需要“LEFT JOIN”将posts表链接到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,用于链接两者。)