PHP从MySQL数据库中获取数据

时间:2011-06-04 11:07:16

标签: php mysql

所以我试图以多对多的关系获取数据。

到目前为止,我有这个,它找到了用户:

$user = $_SESSION['user'];
$userID = mysql_query("SELECT * FROM users WHERE user='$user'") or die(mysql_error());

我知道要回应这些信息,我必须把它放在一个像这样的数组中:

while ($r = mysql_fetch_array($userID)) {
echo $r["0"];
}

这很好用,但是当我尝试在另一个表中找到这个变量时,我不确定该用什么作为变量:

$projects = mysql_query("SELECT projects_ID FROM projects_users WHERE users_ID='???'") or die(mysql_error());

我试过替换???使用$ userID和$ r,但无济于事。我知道代码可以工作,因为当我手动输入用户ID时,这很好 - 我哪里出错了?

5 个答案:

答案 0 :(得分:2)

未经测试,但这应该有效:

$user = mysql_real_escape_string($_SESSION['user']);
$query = mysql_query("SELECT * FROM users WHERE user='$user'") or die(mysql_error());

$result = mysql_fetch_array($query);
$userID = $result[0];

$projects = mysql_query("SELECT projects_ID FROM projects_users 
  WHERE users_ID='$userID'") or die(mysql_error());

答案 1 :(得分:2)

我是你的情况,你需要在那里放置$ r [0]。

答案 2 :(得分:2)

$user = $_SESSION['user'];
$query = mysql_query("SELECT * FROM users WHERE user='".mysql_real_escape_string($user)."' LIMIT 1") or die(mysql_error()); //--note the LIMIT

$result = mysql_fetch_array($query);
$userID = $result[0];

$projects = mysql_query("SELECT projects_ID FROM projects_users WHERE users_ID='$userID'") or die(mysql_error());

答案 3 :(得分:1)

您可以使用一个查询来获取项目:

$user = mysql_real_escape_string($_SESSION['user']);

$query = mysql_query("SELECT pu.projects_ID FROM users u 
           INNER JOIN projects_users pu ON (pu.users_ID = u.users_id)    
           WHERE u.user='$user'") or die(mysql_error());

$result = mysql_query($query) or die(mysql_error());

while ($row = mysql_fetch_assoc($result)) {
  echo $row['projects_ID'];
}

答案 4 :(得分:1)

我认为当你想以数组形式获取数据时,这段代码对初学者有用

我们使用mysqli而不是mysql来保护您的数据免受SQL注入。

使用此代码之前先检查数据库连接

<?php $tableName='abc';

$qry="select * from $tableName";

$results=mysqli_query($qry);

while($records=mysqli_fetch_array($results))

{
$firstrecord=$records[1];

$secondrecord=$records[2];

}

?>