简单的数据库查找 - 保持循环

时间:2012-08-18 09:23:33

标签: php mysql

我的网站上运行了以下代码。我从一个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"; 
} 
?> 

2 个答案:

答案 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')重定向是不好的