ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #651  
Старый 07.06.2009, 23:38
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Цитата:
Сообщение от Vanofuture  
FireFenix, спс всё пашет. В продолжение темы:
Нужно извлечь записи из таблицы xxx, при этом если в таблице yyy есть запись у которой поле xxx.`id`=`yyy`.`cur_id` то эти данные также должны появится в результате, а если их нету то запрос все равно будет выполнен. Я пытался сделать что-то вроде, но не получилось:
Код:
SELECT * FROM `xxx` IF EXISTS(SELECT * FROM `yyy` WHERE `xxx`.`id`=`yyy`.`my_id`);
Как всегда всё запутанно и сложно
На этот случай есть LEFT JOIN

Код:
SELECT * FROM xxx LEFT JOIN yyy ON yyy.my_id=xxx.id
Тогда ты получишь таблицу - состоящую из столбцов 2х таблиц

Для наглядности и понимания советую посмотреть - http://www.codinghorror.com/blog/archives/000976.html
 
Ответить с цитированием

  #652  
Старый 10.06.2009, 17:54
Аватар для [R]eD
[R]eD
Познающий
Регистрация: 01.08.2006
Сообщений: 35
Провел на форуме:
94171

Репутация: 3
По умолчанию

Есть таблица с колонкой date (тип varchar), в ней содержится timestamp, как вывести например записи с датой 2009-01-04?
Спасибо.
 
Ответить с цитированием

  #653  
Старый 10.06.2009, 18:08
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Цитата:
Сообщение от [R]eD  
Есть таблица с колонкой date (тип varchar), в ней содержится timestamp, как вывести например записи с датой 2009-01-04?
Спасибо.
Код:
SELECT FROM_UNIXTIME(data_field);
Код:
mysql> SELECT FROM_UNIXTIME(1196440219);
        -> '2007-11-30 10:30:19'

mysql> SELECT FROM_UNIXTIME(1196440219) + 0;
        -> 20071130103019.000000

mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(), '%Y %D %M %h:%i:%s %x');
        -> '2007 30th November 10:30:59 2007'
Код:
SELECT * FROM table WHERE FROM_UNIXTIME(data_field) = '2009-01-04';

Последний раз редактировалось FireFenix; 10.06.2009 в 18:40..
 
Ответить с цитированием

  #654  
Старый 10.06.2009, 18:29
Аватар для krypt3r
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

Код:
select * from mytable where date(`date`) = '2009-01-04';
 
Ответить с цитированием

  #655  
Старый 11.06.2009, 00:30
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

Собственно, думаю сюда пишу,правильно =)
В общем,есть в базе новости,которые постоянно добавляються.
При выводе их,таким образом:
PHP код:
$query mysql_query("SELECT * FROM news");
    while (
$row mysql_fetch_assoc($query)) {
        if (
strlen($row['body']) <= 780) {
            
$mini_news $row['body'];
            
$read_full '';
        } else {
            
$mini_news substr($row['body'], 0780);
            
$read_full '...<a href="news.php?id=' $row['id'] . '">Далее</a>';
        }
        
$result .= '<div id="news"><name>' $row['subject'] . '</name>
<table width="0" border="0" cellpadding="0" cellspacing="0">
<tr><td><img src="file/img/' 
$row['path_img'] . '"></td><td id="text">' $mini_news .
            
$read_full '</td></table>
</div>'
;
    } 
Это отрывок функции,которая возвращает $result;
ТАк вот,новости выводяться задом наперед,тоесть,те что были добавленуц только что - внизу,а те что давно - наверху.
Каким образом изминить положение вещей?
 
Ответить с цитированием

  #656  
Старый 11.06.2009, 00:36
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Цитата:
Сообщение от m0Hze  
ТАк вот,новости выводяться задом наперед,тоесть,те что были добавленуц только что - внизу,а те что давно - наверху.
Каким образом изминить положение вещей?
Код:
$query = mysql_query("SELECT * FROM news ORDER BY id DESC");
ASC - обычный порядок
DESC - обратный порядок
 
Ответить с цитированием

  #657  
Старый 11.06.2009, 02:50
Аватар для Vanofuture
Vanofuture
Познающий
Регистрация: 24.04.2008
Сообщений: 34
Провел на форуме:
148656

Репутация: 28
По умолчанию

Как для каждой записи в таблице xxx создать запись в таблице yyy?
 
Ответить с цитированием

  #658  
Старый 11.06.2009, 09:15
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

Код:
INSERT INTO yyy (name, id_xxx) SELECT "Я название" as "name", id FROM xxx;
Код:
SELECT * FROM xxx;
... Получаем нужные данные...
INSERT INTO yyy SET столбец="полученные данные";
Вообще нужно уточнить задачу. Там есть много способов.
 
Ответить с цитированием

  #659  
Старый 11.06.2009, 16:40
Аватар для Vanofuture
Vanofuture
Познающий
Регистрация: 24.04.2008
Сообщений: 34
Провел на форуме:
148656

Репутация: 28
По умолчанию

Цитата:
Сообщение от FireFenix  
Вообще нужно уточнить задачу. Там есть много способов.
Даже не знаю, что там может быть особенного.
Нужно для каждой записи из таблицы xxx создать запись в таблице yyy, при это надо заменить часть дефолтного текста одним полем из xxx. Мой набросок:
Код:
SELECT `name` FROM `xxx`;
INSERT INTO yyy VALUES(NULL, ( REPLACE(somedata, '%username%', `xxx`.`name`) ) );
 
Ответить с цитированием

  #660  
Старый 11.06.2009, 19:09
Аватар для FireFenix
FireFenix
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме:
3178262

Репутация: 389
По умолчанию

INSERT INTO yyy (name, id_xxx) SELECT "Я название" as "name", id FROM xxx;
вот используй

в SELECT указываешь поля которые будут выбираться из ххх и измённое поле как "поле as имя_поля"
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сетевой этикет (Перед тем, как задать вопрос хакеру) satana-fu Статьи 7 21.10.2009 07:40
Ответы на часто задаваемые вопросы + линки на статьи по SQL/XSS/PHP-инклуд Jokester Уязвимости 2 28.06.2009 00:19
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости 4 07.07.2006 16:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ