我的网站上运行了以下代码。我从一个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";
}
?>
答案 0 :(得分:0)
为什么不添加
WHERE client_number='$myclient'
到第二个mysql查询,就像在第一个查询中一样?
或者只使用第一次查询的结果
答案 1 :(得分:0)
从您的查询中提取所有重定向
$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')
重定向是不好的