从PHP获取URL和mysql数据库的信息

时间:2012-05-10 14:10:15

标签: php mysql compare

当我试图在之前的问题中发帖时,我想知道如何从php中获取URL和mySQL数据库中的数据,然后比较结果,如果它们彼此相等则运行事件。到目前为止我有这个代码,但只要URL中有id,它似乎无论什么都可以工作。它永远不会检查它与mysql数据库中的id。有什么想法吗?

以下是代码:

    <?php

$random = uniqid();

if ($id = $_GET['id']) {

$dbhandle = mysql_connect('host', 'user', 'password')
 or die("Unable to connect to MySQL");
$selected = mysql_select_db('a6675286_main',$dbhandle)
or die("Could not select database");

$sql = "SELECT completed FROM authentication WHERE username='admin'"; 
$id2 = mysql_query($sql);

}

if ($id = $id2) {
 mysql_query("UPDATE authentication SET completed = $random WHERE username = 'admin'");
 include 'sendmail.php';
echo "You win";
}
else {
header('Location: http://www.websites.com/');
}

?>

5 个答案:

答案 0 :(得分:3)

if ($id = $id2)

那是错的!

你需要

if ($id == $id2)

($id == $_GET['id'])

答案 1 :(得分:2)

$ id2不是id,因为mysql_query返回结果集。要在PHP中使用查询结果集,请查看结果函数,如mysql_fetch_assoc

答案 2 :(得分:1)

您没有比较if语句中的值,而是指定它们 尝试

  

if($ id == $ _GET ['id'])

if ($id == $id2)

此外,您为$ id2分配的值不正确,您要找的是

$result = mysql_query($query);
$row = mysql_fetch_array($result);
$id2 = $row[0];

答案 3 :(得分:0)

请更正:

  1. $id2 = mysql_query($sql);您需要处理$ id2数组中的结果以获取所需的变量。

  2. if ($id = $id2) { ...和if ($id = $_GET['id']) {使用==

答案 4 :(得分:-2)

$id不是数字。这是一个mysql资源。

    <?php

$random = uniqid();

if ($id == $_GET['id']) { //<-------Check this double '=='

$dbhandle = mysql_connect('host', 'user', 'password')
 or die("Unable to connect to MySQL");
$selected = mysql_select_db('a6675286_main',$dbhandle)
or die("Could not select database");

$sql = "SELECT completed FROM authentication WHERE username='admin'"; 
$result = mysql_query($sql) or die(mysql_error()); //<------------ it is a mysql resource
$row = mysql_fetch_assos($result);
$id2 = $row['completed']; //<----- Now the value comes

}

if ($id == $id2) { //<-------Check this double '=='
 mysql_query("UPDATE authentication SET completed = $random WHERE username = 'admin'");
 include 'sendmail.php';
echo "You win";
}
else {
header('Location: http://www.websites.com/');
}

?>
  • '='正在分配运营商。这意味着左操作数被设置为 右边表达式的值。

  • '=='和'==='是比较运算符。

    • x == y(等于)

    • x === y(相同)它也检查类型。