我的问题与此问题相似:MySQL Server不返回正确的输出,但是即使在更改问题时,该问题也无法解决。
<?php
require 'dbconnect.php'; //connection to db is success
$search = "SELECT Table_list FROM booktable WHERE status='booked'";
$table_query = mysqli_query($dbconnect,$search);
$row_check = mysqli_num_rows($table_query);
if($row_check>=1){
$tables = array();
while($row=mysqli_fetch_assoc($table_query)){
$output = $row['Table_list'].'<br>';
echo $tables[] = $output; //returns o/p: Table1, Table2, Table3
}
if(array_key_exists('Table1',$tables)){ //trying to check if 'Table1' is in the array
echo 'Table not available'; //if 'Table1' exists should echo this line
}else{
echo'Table available';
}
}
?>
在我的数据库中创建的表:表
来自while loop
3的输出,并通过array
方法&amp;必须将Table1
与输出进行比较。如果在array
中找到Table1
,则应呼应Table not available
,但它正在呼应Table available
。
为什么array
不起作用?
array_key_exists()如果在数组中设置给定键,则返回true。 键可以是数组索引的任何值。 我不认为您正在检查数组中存在的密钥,因此在此处无法使用
array_key_exists
使用in_array()
而不是array_key_exists
$array = array("table1","table2","tabl3");
if(in_array('table2',$array)){
echo "Table not available";
} else {
echo "Table available";
}