Я использую очень простой код для извлечения данных из базы данных MySQL в файл CSV. Код не дал ожидаемого результата, поэтому я сделал код, включающий запрос в CSV файл. В первой части кода кажется, что переменная, содержащая результат запроса, на самом деле не содержит никакого значения, но в другой части кода переменная содержит правильное значение. Короче говоря, одна и та же переменная содержит два значения в разных частях кода.
$sql="SELECT destinazione AS dest,ndc AS n FROM npitz";
$query = mysql_query($sql);
$q="ERROR";
while($row = mysql_fetch_array($query)) {
$query="DELETE FROM npitz_reduced_tmp WHERE
destinazione='".$row['dest']."' AND
ndc LIKE CONCAT('".$row['n']."','%') AND
ndc NOT LIKE '".$row['n']."'";
if($row['n']='77') $q=$query." - ".$row['n'];
mysql_query($query);
}
Переменная $ row ['n'] должна содержать результат запроса SQL. После цикла while переменная $ q имеет вид:
DELETE FROM npitz_reduced_tmp WHERE destinazione='UNITED STATES' AND ndc LIKE CONCAT('','%') AND ndc NOT LIKE '' - 77
Вопрос в том, что если в операторе IF значение $ row ['n'] равно '77', то почему оно не совпадает с присваиванием переменной $ query?
Вы, вероятно, должны использовать ==
вместо =
в операторе if
$row['n']='77'
устанавливает значение$row['n']
равным '77' -=
устанавливает значения, но не сравнивает ихmysql_
api ... он устарел, и вы лишаете себя многих полезных / необходимых характеристик безопасности современного php с использованием либоmysqli
либоPDO
api и драйверов.