我正在尝试实现一个快速搜索栏,以搜索由SQL数据库填充的表。搜索将不搜索表,但将生成SQL语句并搜索数据库。我需要使用PHP实现一个搜索函数,它将使用标志来停止搜索。到目前为止,这是我的代码:
//THIS CODE WILL EXECUTE WHEN THE SEARCH BUTTON IS PRESSED
if($_REQUEST['btnsearch']){
if(isset($_POST['quicksearch']) and !empty($quicksearch)){
$sql = "SELECT column_name FROM information_schema.columns WHERE table_name ='alerts_table'
AND column_name IN('name', 'year','make','model','alert','date')";
$retvalues = mysqli_query($conn, $sql);
$data = array();
//LOOP POPULATES THE ARRAY WITH THE CURRENT COLUMN NAMES.
for($counter = 0; $counter <= $row=mysqli_fetch_array($retvalues, MYSQL_ASSOC); $counter++){
$string = $row["column_name"];
$data[$counter] = $string;
}
$length = count($data);
$flag = 1;
while($flag == 1){
for($x = 0; $x <= $length - 1; $x++){
$sql3="SELECT * FROM alerts_table WHERE $data[$x] = $quicksearch";
$retvalues2=mysqli_query($conn, $sql3);
if(!empty($retvalues2))
{
//POPULATE THE TABLE WITH RESULTS HERE !!!!!!!!!
$flag = -1; ///HOW CAN I BREAK THE LOOP???
}
}
}
}else{发布于 2016-09-18 05:25:53
来自PHP文档:
(PHP 4,PHP 5,PHP 7) 中断结束当前的执行,同时或切换结构. break接受一个可选的数值参数,该参数告诉它要分离多少嵌套的封闭结构。默认值为1,只有直接包围结构被打破。
在您的例子中,您有两个循环:一个while循环和一个内部for循环。可以将内环中的标志设置为将停止while循环的值,然后使用break停止for循环。
$flag = 1;
while($flag == 1){
for($x = 0; $x <= $length - 1; $x++){
// ...
if(!empty($retvalues2))
{
$flag = -1; // set while condition to false
break; // break out of for loop
}
}
// execution continues here after break
// end of while body, start next loop iteration
// $flag == 1 => false, and the while loop will end
}https://stackoverflow.com/questions/39554103
复制相似问题