|
|
|
|
|
для: Trianon
(09.07.2007 в 21:24)
| | Спасибо всем!!!
Я нашел выход с помощью функции sustr!
И сделал все таки посимвольно
$viv_news = mysql_query("SELECT * FROM `news` ORDER BY `id_news` DESC LIMIT 0 , 3;")
or die(mysql_error());
while(list($id_news, $date, $zag, $low_full) = mysql_fetch_row($viv_news))
{
$date2 = month($date);
$text=strip_tags($low_full);
$text=substr($text,0,100);
|
| |
|
|
|
|
|
|
|
для: oradev
(09.07.2007 в 20:47)
| | >To Trianon а кто мешает приведенный выше запрос реализовать в MySQL. Думаю с этим уж точно не будет проблем.
С моей точки зрения, имеет смысл придерживаться компромисса между удобством и затребованными средствами.
Я не помню, в какой версии появились определяемые пользователем функции , но всяко львиная доля хостеров на них отпадет. | |
|
|
|
|
|
|
|
для: Trianon
(09.07.2007 в 17:47)
| | >Это .. первые 10 записей. А не первые десять слов.
>Причем в оракловом стиле, что, судя по нику, неудивительно. :)
Ну можно и так:
CREATE OR REPLACE FUNCTION get_val (str_in IN VARCHAR2, word_count_in NUMBER)
RETURN VARCHAR2
IS
len NUMBER := NVL (LENGTH (str_in), 0);
words NUMBER := 0;
end_str NUMBER := 0;
RESULT VARCHAR2 (40);
BEGIN
FOR i IN 1 .. len
LOOP
IF ASCII (SUBSTR (str_in, i, 1)) = 32 OR i = len
THEN
words := words + 1;
IF words = word_count_in
THEN
end_str := i;
EXIT;
END IF;
END IF;
END LOOP;
RESULT := SUBSTR (str_in, 1, end_str);
RETURN RESULT;
END;
|
Старайтесь подобные простые ф-ции оформлять на сервере, задачи адмимнистрирования подобных фуекций, пакетов и пр в этом случаи выполняется на много легче и быстрее.
Конечно, не во всех случаях но все же, в КИС используют именно такую модель.
To Trianon а кто мешает приведенный выше запрос реализовать в MySQL. Думаю с этим уж точно не будет проблем. | |
|
|
|
|
|
|
|
для: oradev
(09.07.2007 в 16:40)
| | Это .. первые 10 записей. А не первые десять слов.
Причем в оракловом стиле, что, судя по нику, неудивительно. :) | |
|
|
|
|
|
|
|
для: Ильдар
(05.07.2007 в 19:41)
| | Легко
SELECT *
FROM (SELECT *
FROM emp
ORDER BY job)
WHERE ROWNUM <= 10;
|
| |
|
|
|
|
|
|
|
для: Ильдар
(05.07.2007 в 19:41)
| | Если очень грубо - то как-то так.
SELECT LEFT(data,
MIN(
LOCATE('.', CONCAT(data, '.')),
LENGTH(DATA)-COALESCE(LENGTH(SUBSTRING_INDEX(data, ' ', 10),0))
)
) AS shortdata
FROM tbl
|
Тут стоит причесать точное количество символов... | |
|
|
|
|
|
|
|
для: Faraon
(06.07.2007 в 09:32)
| | Ааа. 10 слов. Извиняюсь. Я думал символов. | |
|
|
|
|
|
|
|
для: Ильдар
(06.07.2007 в 09:20)
| | Первое что в голову прищло, кащунский вариант :)))
<?php
$text="Нужно из базы извлечь текст, но только первые 10 слов или текст до первой точки.";
$d=explode(" ",$text);
for($i=0;$i<10;$i++){
$t .= $d[$i]." ";
}
print $t;
?>
|
первые 10 слов | |
|
|
|
|
|
|
|
для: Ильдар
(06.07.2007 в 09:20)
| |
<?php
$string = "123456789.1234567890";
if(($pos = strpos($string, ".")) !== false && $pos < 10)
{
$string = substr($string, 0, $pos + 1);
}
else
{
$string = substr($string, 0, 10);
}
?>
|
| |
|
|
|
|
|
|
|
для: Unkind
(06.07.2007 в 05:29)
| | поможешь?
мне просто в голову ничего хорошего не приходит! | |
|
|
|
|