我正在尝试使用IF ELSE Condition
在PHP中使用Mysql执行一个简单的程序我的代码正在执行IF部分但不执行Else
请帮帮我 这是我的代码
<?PHP
$userInputEntities = htmlentities($userInput);
echo $userInputEntities;
$username = "admin";
$password = "1234565";
$database = "tele";
$server = "localhost";
$db = new PDO (
"mysql:host=$server;dbname=$database",
"$username",
"$password");
$id = $_REQUEST['cid'];
if ($db) {
$SQL = $db->prepare("SELECT * FROM user WHERE uid = :id");
$SQL -> execute(array(':id'=>$id));
while ($row = $SQL->fetch(PDO::FETCH_ASSOC)) {
if ($id=="$row[uid]") {
echo "Welcome";
} else {
echo "Sorry You Have not registered with our service";
}
}
}
&安培; 我的数据库表是'用户'
uid name
1 Manoj
2 pranay only two rows i have in table
如果用户输入在表中可用,那么它应该打印如果部分,如果用户没有找到,那么它应该打印其他部分 请帮帮我,谢谢你
此处如果在IF条件满足时打印部件但在If条件失败时不打印其他部件
答案 0 :(得分:2)
如果您的查询返回空集,则不会执行整个while
块(如果DB中没有给定id
的用户)。因此,在此块中放置else
是没有意义的:如果输入while
正文,$id
将始终等于$row['uid']
- 这是WHERE
子句中设置的条件记住。
您需要检查行数,并根据该行分支代码,用以下内容替换整个while
块:
$sql = $db->prepare("SELECT * FROM user WHERE uid = :id");
$sql->execute(array(':id'=>$id));
if ($sql->rowCount()) {
echo "Welcome";
}
else {
echo "Sorry, you Have not registered with our service";
}
另一种方法是更改查询(SELECT COUNT(*) ...
),这样它将返回计数而不是整行,并检查其值是否为0。
答案 1 :(得分:0)
看起来像:
$_REQUEST['cid']
解析与:
相同"$row[uid]"
对于每次通话,这意味着其他条件(第一次不等于第二次)从未得到满足。
在这些情况下,当我不确定它们的值是什么,或者我是否想要比较它们以查看我的代码是否按预期工作时,我喜欢回显变量的值。这样你就可以明确地看到两个变量的比较结果。