0

我在我的网站上运行以下代码。我从 html 表单中调用它。该表单有一个客户编号,它在数据库中查找重定向值并应重定向到网站。重定向适用于数据库中的一个值。但是,当我添加更多值时,它会使用最后一个值。我添加了 echo 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"; 
} 
?> 
4

1 回答 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')在循环中使用重定向是不好的

于 2012-08-18T09:33:12.990 回答