【发布时间】:2014-03-12 19:59:07
【问题描述】:
我正在尝试做我认为是一项简单的任务,但结果却相当困难。我要做的就是提供一个 1 字段表单,允许用户输入一个唯一的 id 并点击提交。如果唯一 id 与数据库中的其中一个 id 匹配,那么它们将被定向到页面。如果 id 不匹配,我希望它告诉“Id 不匹配,再试一次”或类似的东西。
我看过无数涉及登录表单的教程,但这比我需要的要多一些,每次我尝试将其简化为我需要的内容时,它都不起作用。我尝试了很多不同的代码。这是我目前拥有的。
更新代码:
<form name="enterclient" method="post">
<label for="clientid">Enter your client id</label><br />
<input name="clientid" id="clientid"><br /><br />
<input type="submit" value="Submit" name="submit" id="submit">
</form>
<?php global $current_user;
get_currentuserinfo();
$host = 'myhost';
$username = 'myuser';
$pass = 'mypass';
$database = 'mydb';
$link = mysqli_connect($host,$username,$pass, $database);
$clientid = $_REQUEST['clientid'];
if ($link) {
if(isset($_POST['submit'])) {
if (empty ($clientid)) {
//if username field is empty echo below statement
echo "you must enter your unique username <br />";
}
$query = "SELECT * FROM wp_locations WHERE client = '". mysqli_real_escape_string($link,$clientid) ."'" ;
$result = mysqli_query($link, $query) or die("Unable to query");
$option = "";
while($row=mysqli_fetch_array($result, MYSQLI_BOTH)) {
$option .= "<option value='{$row['client']}'>{$row['client']}</option>";
}
}
else {
}//close else
if ($result) {
print $option;
echo "query successful";
header('location: http://www.google.com');
}
else {
echo"query fail";
}
}//end of initial if $db_found
else {
print "Database NOT Found ";
}
// disconnect from the database
mysql_close();?>
更新的输出: 当我到达初始页面时,它仍然显示“查询失败”,我猜这是因为 $clientid 还没有值。
当我在框中输入任何内容时,它都会返回“查询成功”。我希望它仅在输入与数据库值之一匹配时才返回成功。
如果我输入一个我知道与数据库值匹配的值,它会给我一个该数据库值的列表,无论它存在多少次,并说查询成功。
请务必注意,重定向似乎永远不会起作用。
【问题讨论】:
-
你正在混合 mysql 和 mysqli
-
你有 mysql_connect($host,$username,$pass);后来使用 $result = mysqli_query($query);所以查询不起作用你需要检查in1.php.net/mysqli_connect
-
使用
mysqli_*可以使用if(mysqli_num_rows($query) > 0)来检查匹配;并且不要混合你的 SQL 函数,它们基本上不会混合 ;-)mysqli_*和mysql_*是一个致命的组合 -
请在问题中发布您更新的代码。
-
你没有把 all =>
mysql_改成mysqli_
标签: php mysql sql database forms