|
|
|
|
<?php
include "setting.php";
$arr = file( "tyuy.csv" , FILE_IGNORE_NEW_LINES |
FILE_SKIP_EMPTY_LINES |
FILE_BINARY);
$sql = array();
for($i = 0; $i < count($arr); $i++)
{
$arr[$i] = trim($arr[$i]);
$line = explode(",", $arr[$i]);
$sql[] = "('{$line[0]}',
'{$line[1]}',
'{$line[2]}',
'{$line[3]}',
'{$line[4]}',
'{$line[5]}',
'{$line[6]}',
'{$line[7]}',
'{$line[8]}',
'{$line[9]}',
'{$line[10]}',
'{$line[11]}',
'{$line[12]}',
'{$line[13]}',
'{$line[14]}',
'{$line[15]}',
'{$line[16]}',
'{$line[17]}',
'{$line[18]}',
'{$line[19]}',
'{$line[20]}',
'{$line[21]}',
'{$line[22]}',
'{$line[23]}',
'{$line[24]}',
'{$line[25]}'
)";
//$arr = explode ("\n", $contents);
echo "<pre>";
print_r ($sql);
echo "</pre>";
$result=mysql_query("SELECT * FROM `trika_farm` WHERE name = `$line[1]`");
printf($result);
if ($result=='true')
{
$status= 1 ;
$query1=("UPDATE `trika_farm` SET price=`$line[10]`");
mysql_query($query1);
}
else
{
$query = (" INSERT INTO`trika_farm`( `name`, `made`, `cmade`, `valid`,`price`, `prodprice`, `GNVLS`, `cncode`, `barcode`) VALUES ($line[1],$line[2],$line[3],$line[7],$line[9],$line[19],$line[22],$line[23]");
mysql_query($query);
}
if(!mysql_query($query)) exit("Запрос не выполнился по тому, что ".mysql_error());
}
?>
|
Выдает ошибку Запрос не выполнился по тому, что You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ПОЯС АЛТЕРНА ДЛЯ КАЛО/УРОПРИЕМНИКОВ,COLOPLAST A/S,ДАНИЯ,20151001,141.68000000,F,' at line 1
не могу понять почему | |
|
|
|
|
|
|
|
для: maxim14
(05.05.2011 в 09:40)
| | Строковые значения нужно заключать в кавычки, у вас же значения в конструкции VALUES идут без кавычек, так как будто они все числовые. | |
|
|
|
|
|
|
|
для: cheops
(05.05.2011 в 09:51)
| | Изменил на это :
$query = (" INSERT INTO`trika_farm`( `name`, `made`, `cmade`, `valid`,`price`, `prodprice`, `GNVLS`, `cncode`, `barcode`) VALUES ('$line[1]','$line[2]','$line[3]',$line[7],$line[9],'$line[19]',$line[22],$line[23]");
|
Теперь выдает Запрос не выполнился по тому, что You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | |
|
|
|
|
|
|
|
для: maxim14
(05.05.2011 в 10:08)
| | У вас для конструкции VALUES нет завершающей круглой скобки. | |
|
|
|
|
|
|
|
для: cheops
(05.05.2011 в 10:31)
| | Спасибо! Но теперь получилось вот что Column count doesn't match value count at row 1
Понимаю что это связано со сструктурой таблицы, а куда копать не пойму
Разобрался, проблема была в том что несоответствовало количество полей и значений | |
|
|
|
|
|
|
|
для: maxim14
(05.05.2011 в 10:34)
| | Теперь не могу понять почему не работает вот эта часть кода
$result=mysql_query("SELECT * FROM `trika_farm` WHERE name = `$line[1]`");
printf($result);
if ($result=='true')
|
То есть скрипт при повторном запуске дублирует уже имеющиеся записи | |
|
|
|
|
|
|
|
для: maxim14
(05.05.2011 в 11:10)
| | в кавычки возьмите, а не в апостриф $line[1] | |
|
|
|
|
|
|
|
для: maxim14
(05.05.2011 в 11:10)
| | Функция mysql_query() не возвращает результат, она возвращает дескриптор, по которому можно получить результат. Т.е. этот фрагмент лучше переписать так
<?php
...
$query = "SELECT COUNT(*) FROM `trika_farm` WHERE name = '$line[1]'";
$result=mysql_query($query);
if(!$result) exit("Ошибка - ".mysql_error());
if (mysql_result($query, 0))
...
?>
|
| |
|
|
|