Я читаю текстовый файл и обрабатываю некоторые записи, соответствующий образец текстового файла:
#export_dategenre_idapplication_idis_primary
#primaryKey:genre_idapplication_id
#dbTypes:BIGINTINTEGERINTEGERBOOLEAN
#exportMode:FULL
127667880285760063715151750
127667880285760123715151751
Я хочу выполнить определенное действие, когда application_id уже сохранен в моей базе данных AND is_primary = 1
Я написал этот PHP, чтобы проверить мой код:
$fp1 = fopen('genre_application','r');
if (!$fp) {echo 'ERROR: Unable to open file.'; exit;}
while (!feof($fp1)) {
$line = stream_get_line($fp1,128,$eoldelimiter); //use 2048 if very long lines
if ($line[0] === '#') continue; //Skip lines that start with #
$field = explode ($delimiter, $line);
list($export_date, $genre_id, $application_id, $is_primary ) = explode($delimiter, $line);
// does application_id exist?
$application_id = mysql_real_escape_string($application_id);
$query = "SELECT * FROM jos_mt_links WHERE link_id='$application_id';";
$res = mysql_query($query);
if (mysql_num_rows($res) > 0 ) {
echo $application_id . "application id has genre_id" . $genre_id . "with primary of " . $is_primary. "\n";
} else
{
// no, application_id doesn't exist
}
} //close reading of genre_application file
fclose($fp1);
, который приводит к выводу на экран и в точности соответствует ожиданиям.
371515175application id has genre_id6006with primary of 0
371515175application id has genre_id6012with primary of 1
Если я тогдадобавьте оператор IF, как в приведенном ниже коде, он каким-то образом изменит значение is_primary, как показано на экранном дисплее
$fp1 = fopen('genre_application','r');
if (!$fp) {echo 'ERROR: Unable to open file.'; exit;}
while (!feof($fp1)) {
$line = stream_get_line($fp1,128,$eoldelimiter); //use 2048 if very long lines
if ($line[0] === '#') continue; //Skip lines that start with #
$field = explode ($delimiter, $line);
list($export_date, $genre_id, $application_id, $is_primary ) = explode($delimiter, $line);
// does application_id exist?
$application_id = mysql_real_escape_string($application_id);
$query = "SELECT * FROM jos_mt_links WHERE link_id='$application_id';";
$res = mysql_query($query);
if (mysql_num_rows($res) > 0 ) {
if ($is_primary = '1') echo $application_id . "application id has genre_id" . $genre_id . "with primary of " . $is_primary. "\n";
} else
{
// no, application_id doesn't exist
}
} //close reading of genre_application file
fclose($fp1);
?>
Приведенный выше код приводит к следующему экранному экрану, на котором неправильно отображается первое поле сосновной из 1, когда, как видно из предыдущего экрана и образца текстового файла, это должно быть 0
371515175application id has genre_id6006with primary of 1
371515175application id has genre_id6012with primary of 1
Может кто-нибудь объяснить, что я делаю, чтобы сделать изменение переменной и как я должен использоватьЕсли правильно, пожалуйста?