и начинает ругаться когда, одна из выдергиваемых ячеек -пустая.
вот кусок вывода:
<tr style="color: green">
<td>23342</td>
<td>FORCE Головка торц.3/4" 12-гран. 30мм (2)</td>
<td><b>9148</b></td>
<td>163.8</td>
<td> 1</td>
</tr>
<tr style="color: green">
<td>23343</td>
<td>FORCE Головка торц.3/4" 12-гран. 36мм (2)</td>
<td><b>139</b></td>
<td>175.95</td>
<td> 1</td>
</tr>
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 ' 5)' at line 1
кусок скрипта
//Цикл
//
for ($i = 1; $i <= $data->sheets[1]['numRows']; $i++) {
if($data->sheets[1]['cells'][$i][9] != ""){
if($cur_i == 0)
{$cur_i++;}
else
{
//Достаем из базы SKU
$sql = "SELECT * FROM av_product WHERE sku = '".$data->sheets[1]['cells'][$i][2]."'";
$cur_product_query = mysql_query($sql) or die('Query failed: ' . mysql_error());
$cur_product = mysql_fetch_array($cur_product_query);
//Условие определяем является ли числом поле кол-во
if(!is_numeric(trim($data->sheets[1]['cells'][$i][9])))
//Да
{$product_count = 5;}
else
//Нет
{$product_count = $data->sheets[1]['cells'][$i][9];}
//Если есть совпадения по SKU
if
($cur_product['sku'] != ""){
//Торговая наценка
$cena1 = 1.30; //До 100р. = 30%
$cena2 = 1.15; //До 1000р. = 15%
$cena3 = 1.08; //Всё остальное = 8%
//Потолок цен
$potolok = 100;
$potolok1 = 500;
$potolok2 = 1000;
$potolok3 = 3000;
//Логика цен
if ($price <= $potolok) {
$roznica=$cena1;
}
elseif ($price <= $potolok2) {
$roznica=$cena2;
}
else {
$roznica=$cena3;
}
//Заносим
$price = $data->sheets[1]['cells'][$i][8];
//Умножаем на коэффициент
$price1 = $price*$roznica;
//Если есть такой товар, то обновляем цену и кол-во.
$sql = "UPDATE av_product SET sku = '".$data->sheets[1]['cells'][$i][2]."',
price = ".$price1.",
quantity = ".$product_count ."
WHERE sku = '".$data->sheets[1]['cells'][$i][2]."',
price = ".$price1.",
quantity = ".$product_count ."";
mysql_query($sql) or die(mysql_error());
echo '<tr style="color: green">';
echo '<td>'.$data->sheets[1]['cells'][$i][1].'</td>';
echo '<td>'.$data->sheets[1]['cells'][$i][5].'</td>';
echo '<td><b>'.$data->sheets[1]['cells'][$i][2].'</b></td>';
echo '<td>'.$price1.'</td>';
echo '<td>'.$data->sheets[1]['cells'][$i][9].'</td>';
echo '</tr>';
помогите решить с синтаксисом проблему или хотябы подскажите куда смотреть.
ЗЫ. если кому нужна будет реализация покажу.
Спустя 10 минут, 53 секунды (24.07.2012 - 17:47) Winston написал(а):
$sql = "SELECT * FROM av_product WHERE sku = '".mysql_real_escape_string($data->sheets[1]['cells'][$i][2])."'";
И при UPDATE используй mysql_real_escape_string для обработки переменных.
Спустя 4 часа, 8 минут, 33 секунды (24.07.2012 - 21:55) skyinfo написал(а):
Что-то не как не хочет с пустыми строчками работать, может условие какое прописать? Или экран какой навесить.
Вот кстати поле в которое бьётся.
Вот кстати поле в которое бьётся.
Скрытый текст |
Спустя 1 день, 21 час, 30 минут, 45 секунд (26.07.2012 - 19:26) skyinfo написал(а):
Спасибо ребята, иногда просто не видишь ошибку под ногами, а дело то было всего лишь в кавычка которые надо было поставить)))))
Не правильный вариант был-
Правильный -
НА будущее... может кому пригодиться, почитайте на досуге.
http://code.google.com/p/php-excel-reader/wiki/Documentation
Не правильный вариант был-
price = ".$price1.",
quantity = ".$product_count ."
Правильный -
price = '".$price1."',
quantity = '".$product_count ."'
НА будущее... может кому пригодиться, почитайте на досуге.
http://code.google.com/p/php-excel-reader/wiki/Documentation