所以我试图以多对多的关系获取数据。
到目前为止,我有这个,它找到了用户:
$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时,这很好 - 我哪里出错了?
答案 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];
}
?>