我的网站上运行着以下代码。我从html表单中调用它。该表单有一个客户端号码,它在数据库中查找重定向值,并应该重定向到网站。数据库中只有一个值时,重定向效果很好。然而,当我添加更多的值时,它会使用最后一个值。我添加了回声goto,这样我就可以看到了。该脚本提取整个数据库的每个重定向值。如何提取与client_number关联的重定向值?
<php
$host="localhost"; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="clients"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// sent from form
$myclient=$_POST['myclient'];
$myclient = stripslashes($myclient);
$sql="SELECT * FROM $tbl_name WHERE client_number='$myclient'";
$result=mysql_query($sql);
$count=mysql_num_rows($result);
if($count==1){
$result = mysql_query("SELECT redirect FROM clients");
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$goto = $row['redirect'];
//added to see output
echo $goto;
//header ("location: $goto");
}
exit();
}
else {
echo "Account number is invalid";
}
?>
从您的查询中提取所有重定向
$result = mysql_query("SELECT redirect FROM clients");
应该是
$result = mysql_query("SELECT redirect FROM clients WHERE clientID=1234");
然后您使用的是while
而不是if
if($row = mysql_fetch_array($result, MYSQL_ASSOC)) { }
在循环中使用header('Location: xyz.ext')
重定向是糟糕的