Вот кусок моего кода, ответственный за запись в базу:
$string = file('./base_update.txt');
$update_array = array('id', 'cost', 'currency', 'main_head_string', 'logo_string', 'logo_alt', 'logo_pic', 'bg_head_pic');
$i = 0;
while ( $i < count($string) ) {
$kletki = explode('|', $string[$i]);
$k = 1;
while ( $k < count($kletki) ) {
mysql_query("UPDATE `ttttt` SET $update_array[$k] = $kletki[$k] WHERE id = $kletki[0]");
$k++;
}
$i++;
}
Вот Файл "base_update.txt", который парсится:
8|111|usd|РЕГИСТРАЦИЯ|СТОИМОСТЬ|Гонконг|logo_hongkong.jpg|bg_hongkong.jpg
35|222|usd|ОТКРЫТИЕ|СТОИМОСТЬ|Hellenic|logo_hellenic.jpg|bg_bank_hellenic.jpg
Ситуация вот в чем:
Данные пишутся только в колонку cost !
Что не так то ? Спасибо заранее за совет !
Привет, У меня всё нормально парсит, единственное, что немного не оптимально был написан код, я позволил себе его модифицировать немного с целью оптимизации.
В результате формируется один sql запрос. Попробуй, должен работать.
$string = file('./base_update.txt');
$update_array = array('id', 'cost', 'currency', 'main_head_string', 'logo_string', 'logo_alt', 'logo_pic', 'bg_head_pic');
$i = 0;
$sql = "UPDATE `ttttt` SET ";
$count_s = count($string);
while ( $i < $count_s ) {
$kletki = explode('|', $string[$i]);
$count_k = count($kletki);
$k = 1;
while ( $k < $count_k ) {
if($k > 1){
$sql .= ', ';
}
$sql .= "`{$update_array[$k]}` = '{$kletki[$k]}'";
$k++;
}
$i++;
}
$sql .= " WHERE `id` = '{$kletki[0]}'";
mysql_query($sql);
Попробуйте запрос вот так написать:
mysql_query("UPDATE `ttttt` SET `$update_array[$k]` = '$kletki[$k]' WHERE id = $kletki[0]");
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости