SQL, где предложение дает нулевой результат

У меня есть следующий простой код PHP, который дает мне результат, который я хочу отобразить.

$linkz= mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db($db, $linkz);


$sq_name= $_POST['unameTF'];
$sq_pass= $_POST['passTF'];
$sq_search= $_POST['searchTF'];

if($sq_search=""||$sq_search=null)
{
echo "type something";
}else
{
$sql2= "SELECT * FROM sql_insert WHERE sq_name='$sq_search' ";
$res= mysql_query($sql2, $linkz) or die(mysql_error());
}

while($row=mysql_fetch_assoc($res))
}
echo "$row[sq_name]"."<br/>";
}

Это всегда дает мне нулевой результат (то есть он не выдает ошибку или ничего не выводит).
Он работает нормально, если оператор if-else удален, то есть просто

$sql2= "SELECT * FROM sql_insert WHERE sq_name='$sq_search' ";
$res= mysql_query($sql2, $linkz) or die(mysql_error());

и нет проверки, чтобы увидеть, если это ноль.

а также если я заменю

$sql2= "SELECT * FROM sql_insert WHERE sq_name='$sq_search' ";

с

$sql2= "SELECT * FROM sql_insert WHERE sq_name='".$_POST['searchTF']."' ";

(даже без удаления оператора if-else)

Может кто-нибудь объяснить, что происходит?

2

Решение

Причина, почему это работает без if() оператор, потому что вы использовали операторы присваивания, а не операторы сравнения, в результате чего поток вашего оператора if работает следующим образом:

if we can set $sq_search = "" ... we can!
check that it's not a null-terminated value... that's good too!
if we can set $sq_search = null ... we can!
check that it's not a null-terminated value... it is, this answer is false
do that else statement,
compile the string, output will be: "SELECT * FROM sql_insert WHERE sq_name=''"

замените ваше заявление if следующим:

if($sq_search===""||is_null($sq_search)){
echo "type something";
} else {
$sql2= "SELECT * FROM sql_insert WHERE sq_name='$sq_search' ";
$res= mysql_query($sql2, $linkz) or die(mysql_error());
}
1

Другие решения

if ((!isset($_POST['searchTF'])) || (empty($_POST['searchTF']))
{
echo "type something";
} else
0

По вопросам рекламы [email protected]