我在这里看过if语句。我发现了一些事情,但我在找出正确的陈述公式时遇到了问题。
我在数据库中有2个表,包含以下2个字段
table 1
rct_app_id
table 2
uid
现在如果uid字段与我希望它的rct_app_id字段匹配
echo "Green Light";
如果不匹配
echo "No Go"
这是我的公式
<?php
$user_id = $_SESSION['uid'];
$sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
$result = query($sql);
$rct_app_id = ['rct_app_id'];
if ($rct_app_id == 'uid') {
echo "Green Light";
} else {
echo "No Go";
}
?>
function query($query)
{
global $connection;
return mysqli_query($connection, $query);
}
答案 0 :(得分:1)
您需要修复两行。 $ result包含数据库的结果,因此它是rct_app_id数据的来源。然后,当您进行比较时,您需要比较两个变量。
$rct_app_id = $result['rct_app_id'];
if ($rct_app_id == $user_id) {
您拥有它的方式,您将数组与字符串进行比较。
执行此操作时:
$rct_app_id = ['rct_app_id'];
您实际上将变量$ rct_app_id设置为等于具有一个元素的数组,尽管语法不正确。相反,您需要获取从数据库返回的数组的一个元素。这假设您有一个名为query()的函数正常工作并返回一个数组。
相反,我们需要将变量设置为等于数组的一个元素,如下所示:
$rct_app_id = $result['rct_app_id'];
然后,当你做这样的比较时:
if ($rct_app_id == 'uid') {
你是说变量$ rct_app_id是否等于字符串uid,它不是。变量总是以$ in php开头,字符串被引用。在脚本前面设置的变量是$ user_id(来自SESSION),所以我们需要与之比较:
if ($rct_app_id == $user_id)
答案 1 :(得分:1)
试试这个。但请记住,人们很难弄清楚一点一点地发生什么事情,这会让你更难以帮助你。
<?php
$user_id = $_SESSION['uid'];
$sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
$result = query($sql);
while(($row = mysqli_fetch_assoc($result))!=false){
$rct_app_id = $row['rct_app_id'];
if ($rct_app_id == $user_id) {
echo "Green Light";
} else {
echo "No Go";
}
}
}
?>
答案 2 :(得分:0)
更新:您已经指定了您的sql lib,我已编辑了以下答案以使用您更新的答案。
由于您没有指定库,我会在假设您使用mysql的情况下编写答案并编辑代码。虽然所有查询和返回函数都使用类似的语法,即:mysql_fetch_assoc()= mysqli_fetch_assoc(),pg_fetch_assoc(postgres)。
<?php
$user_id = $_SESSION['uid'];
$sql = "SELECT * FROM recruits WHERE rct_app_uid = {$user_id}";
$result = query($sql); //What type of query runs as just query()? mysql_query would go here if this was mysql. Some Libraries offer this as a function, but since you didn't specify the library, I'm going to change it to mysql_query and proceed as if you're using mysql.
//$rct_app_id = ['rct_app_id'];//This will never work.
//You need this:
while($row=mysqli_fetch_assoc($result)){
//We only expect one result
$rct_app_id=$row['rct_app_id'];
}
if ($rct_app_id == 'uid') {
echo "Green Light";
} else {
echo "No Go";
}
function query($query)
{
global $connection;
return mysqli_query($connection, $query);
}
?>