Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Выборка из поля данных типа "TEXT", 100 первых символов, как?
 
 автор: mark   (02.08.2005 в 16:54)   письмо автору
 
 

Выборка из поля данных типа "TEXT", 100 первых символов, например что бы только часть текста извлечь. помогите плиз только если можно поподробнее.

   
 
 автор: cheops   (02.08.2005 в 19:54)   письмо автору
 
   для: mark   (02.08.2005 в 16:54)
 

Здесь никаких сложностей нет, MySQL обладает набором встроенных функций, схожих с функциями языков программирования вроде PHP. Поэтому если в таблице tbl у вас имеется столбец col типа TEXT, вы можете извлечь первые 100 символов при помощи запроса
SELECT SUBSTRING(col,1,100) FROM tbl

Встроенная функция SUBSTRING() вырежет из col подстроку длиной 100 символов, начиная с позиции 1.

   
 
 автор: mark   (03.08.2005 в 08:51)   письмо автору
 
   для: cheops   (02.08.2005 в 19:54)
 

Спасибо!

   
 
 автор: BArt Simpson   (21.09.2005 в 14:22)   письмо автору
 
   для: cheops   (02.08.2005 в 19:54)
 

а если тип таблици datetime? как выдернуть год?

   
 
 автор: cheops   (22.09.2005 в 00:21)   письмо автору
 
   для: BArt Simpson   (21.09.2005 в 14:22)
 

SELECT YEAR(col1) FROM tbl

   
 
 автор: BArt Simpson   (22.09.2005 в 12:29)   письмо автору
 
   для: cheops   (22.09.2005 в 00:21)
 



SELECT YEAR (datetime) FROM menpost GROUP BY datetime ORDER BY YEAR (datetime) DESC



и выводит

2005
2005
2005
2005
2005
2004
2004
2004

как сгрупперовать?

   
 
 автор: BArt Simpson   (22.09.2005 в 12:31)   письмо автору
 
   для: cheops   (22.09.2005 в 00:21)
 

стормозил

SELECT YEAR (datetime) FROM menpost GROUP BY YEAR (datetime) ORDER BY YEAR (datetime) DESC

   
 
 автор: BArt Simpson   (22.09.2005 в 12:44)   письмо автору
 
   для: BArt Simpson   (22.09.2005 в 12:31)
 

А день почему-то не выбирается??


SELECT DAY (datetime) FROM menpost GROUP BY DAY (datetime) ORDER BY DAY (datetime) DESC

   
 
 автор: cheops   (22.09.2005 в 14:57)   письмо автору
 
   для: BArt Simpson   (22.09.2005 в 12:44)
 

Для вывода дней существует много функций
DAYNAME() - для дня недели
DAYOFMONTH() - для дня месяца
DAYOFWEEK() - для номера дня недели
DAYOFYEAR() - для для года

Функция DAY() как псевдоним функции DAYOFMONTH() введена только начиная с MySQL 4.1.

   
 
 автор: BArt Simpson   (22.09.2005 в 16:07)   письмо автору
 
   для: cheops   (22.09.2005 в 14:57)
 


$sql="SELECT DAYOFMONTH (datetime) FROM menpost GROUP BY DAYOFMONTH (datetime) ORDER BY DAYOFMONTH (datetime)";
$deyq=mysql_query("$sql");
while($menpost= mysql_fetch_array($deyq))
    {
        if ($menpost[0]=="$day")
            {
            $day=$day."<option value=\"$menpost[0]\" selected>$menpost[0]</option>";
            }
        else{$day=$day."<option value=\"$menpost[0]\">$menpost[0]</option>";}
    }    


не работает !

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /путь/файл.php on line 732

   
 
 автор: cheops   (23.09.2005 в 00:57)   письмо автору
 
   для: BArt Simpson   (22.09.2005 в 16:07)
 

Для внутренних функций MySQL не допускается пробел между именем функции и круглыми скобками, т.е. следует писать следующим образом
<?php
$sql
="SELECT DAYOFMONTH(datetime) FROM menpost GROUP BY DAYOFMONTH (datetime) ORDER BY DAYOFMONTH(datetime)"
?>

   
 
 автор: BArt Simpson   (23.09.2005 в 12:21)   письмо автору
 
   для: cheops   (23.09.2005 в 00:57)
 

ОК, Спасибо, заработало. :)))))))

А теперь выбрать данные по дате :))))

вот это не работает


<?
$sql
="SELECT * FROM menpost WHERE DATE(datetime)='$byear-$bmonth-$bday' ORDER BY datetime DESC";
?>


и это тоже


<?
$sql
="SELECT * FROM menpost WHERE DATE(datetime)='".$byear."-".$bmonth."-".$bday."' ORDER BY datetime DESC";
?>

   
 
 автор: cheops   (23.09.2005 в 15:03)   письмо автору
 
   для: BArt Simpson   (23.09.2005 в 12:21)
 

А какой тип у datetime?

   
 
 автор: BArt Simpson   (23.09.2005 в 15:20)   письмо автору
 
   для: cheops   (23.09.2005 в 15:03)
 

собственно такой же datetime
ГГГГ-ММ-ДД ЧЧ:мм:СС

   
 
 автор: cheops   (23.09.2005 в 15:44)   письмо автору
 
   для: BArt Simpson   (23.09.2005 в 15:20)
 

А какая у вас версия MySQL? Ведь функция DATE() появилась только начиная с 4.1.1, а у вас судя по тому, что не рабтает DAY() версия ниже?

   
 
 автор: BArt Simpson   (22.09.2005 в 12:56)   письмо автору
 
   для: mark   (02.08.2005 в 16:54)
 

А можно выбрать из поля данных типа "VarChar" Символы до знака "-"

прим. "Директоия - поддиректория"
на выходе "Директоия "

   
 
 автор: himic   (25.09.2005 в 21:38)   письмо автору
 
   для: BArt Simpson   (22.09.2005 в 12:56)
 

а если $array=explode("-",твоя строка);
ну а потом просто первый элемент этого массива echo $array[0];

   
 
 автор: himic   (25.09.2005 в 21:43)   письмо автору
 
   для: himic   (25.09.2005 в 21:38)
 

С датами я так мудохался!
echo date("[d.m.Y | H:i:s]", strtotime($arr["data"])); //чтобы вывести в удобном формате

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования