我的php脚本出了问题。我想检查我的脚本是否有数组中的任何内容,如果没有回显消息但是当数组为空时它只是不回显任何内容。
这是我的代码:
include("mysql_connect.php");
$name = $_POST['playerName'];
$users = mysql_query('SELECT * FROM playerdata WHERE username LIKE "'.$name.'%"');
if($name==""){
echo 'Type in player name!';
}else{
while($usersList= mysql_fetch_assoc($users)){
if(!array_count_values($usersList)){
echo 'Player not found';
}else{
echo $usersList['username'].', ';
}
}//While end.
}//If name is empty end.
答案 0 :(得分:1)
如上所述,您必须在循环之前检查行。
$rows = mysql_num_rows($users);
if($rows==0) echo "No rows..";
else {
foreach() {
答案 1 :(得分:1)
问题似乎是,如果用户输入invalid
名称,while loop
不会执行,因为查询根本找不到任何行,code
应该如下
include("mysql_connect.php");
$name = $_POST['playerName'];
if( $name === "" ){
echo 'Type in player name!';
} else {
$users = mysql_query('SELECT * FROM playerdata WHERE username LIKE "'.$name.'%"');
if ( mysql_num_rows($users) == 0) {
echo "Invalid Player name provided";
} else {
while($usersList= mysql_fetch_assoc($users)){
{
echo $usersList['username'].', ';
} //While end.
}
}//empty name
备注:强>
re-formatted
代码,因为它看起来很丑陋execute
时,为什么empty
查询会执行查询!答案 2 :(得分:0)
而不是
if(!array_count_values($usersList)){
使用
if(empty($usersList)){
答案 3 :(得分:0)
如果$ users为空,则不会执行while循环,因此条件为:
if(!array_count_values($usersList)){
echo 'Player not found';
}
永远不会被满足,因为它包含在一个永远不会运行的循环中。