Скопировать из одной таблицы первые 150 символов в другую

Статус
В этой теме нельзя размещать новые ответы.

a33

Гуру форума
Регистрация
8 Сен 2006
Сообщения
223
Реакции
58
Задача: Есть интернет-магазин. У товаров заполнены полные описания. Нужно заполнить краткие описания достаточно скопировать первые 150-300 символов из полного.

Но чтобы не делать это руками, как это сделать через SQL запрос?
Спасибо.
 
Код:
UPDATE `product`
SET `short_description` = SUBSTRING (`full_description`,1,150)
 
Единственное, выдало ошибку
Код:
FUNCTION SUBSTRING does not exist
Погуглил, оказывается после SUBSTRING нельзя ставить пробел. Удалил пробел и сработало.
Спасибо, сработало!

Ха.. теперь другая проблема. В больших описаниях была html разметка, вставлены видео и после того как дернулись 150 символов.. ну вы понимаете :) .. незакрытые теги и даже такое:
Код:
<p>Отличный эквалайзер для автомобиля Смотрите видео:</p>
<p><iframe width="360" height="213" src="http://www.youtube.co

Значит, мне надо сначала вычистить теги.... Еще бы хотелось в конце добавить троеточие. Чтобы было : "Отличный эквала..." .

Есть идеи? :)
 
Последнее редактирование:
Да, часто пробелы втыкаю перед функциями MySQL.. :ah:

Значит, мне надо сначала вычистить теги....
для вычистить тэги использовать php-функцию strip_tags
Код:
<?php
mysql_connect(...);
mysql_select_db(...);
if ($res = mysql_query('select id,full_description from products'))
while ($row = mysql_fetch_assoc($res)) {
  $desc = strip_tags($row['full_description']);
  $desc = substr($desc, 0, 150) . '...';
  $desc = mysql_real_escape_string($desc);
  mysql_query ("UPDATE products SET short_description = '{$desc}' WHERE id = {$row['id']}");
}
 
не совсем понятно с чем вы работаете... если с бд, то это одно если у вам нужен парсер, то это совсем другое....
Если с названием топика вы не ошиблись то это элементарный php и ничего общего с мускулом тут нет. Но Если вы решили делать краткое описание, то совсем не обязательно создавать кучи лишних данных и засорять текстом бд...достаточно сделать 1 отображение текста первые 150 символов, при нажатии на полное описание, отображать не 150,а все символы ...А так получается у вас вы делаете масло масляное
 
Как вариант с помощью регулярок составить запрос, правда как это сделать в MySQL надо поиск4а, в MS проблем бы не было. А так sparsame прав, вы нарушаете нормализацию БД, дублируя поля.
 
Можно еще в шаблоне вместо краткого описания вставить полное описание, образанное функцией truncatе
Код:
{$article|truncate:150:'..':true:true}
Получится что-то вроде
"Можно еще в шаблоне вместо краткого .. truncatе"
База меньше будет по объему
 
Всем спасибо за ответы. В итоге нанял девочку за 300 рублей руками набила оригинальные краткие описания.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху