xaero
-
Posts
98 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Posts posted by xaero
-
-
Есть таблица
os_list
—————————-
id | os | reg
—————————-
1 | MAC | 1
—————————-
2 | MAC | 1
—————————-
3 | MAC | 1
—————————-
4 | MAC | 1
—————————-
5 | WIN | 2
—————————-
6 | WIN | 2
—————————-
7 | WIN | 2
—————————-
8 | WIN | 2
—————————-
его можно так отоброжать ?: (т.е. каждый reg по лимиту 2 показывается)
—————————-
id | os | reg
—————————-
1 | MAC | 1
—————————-
2 | MAC | 1
—————————-
5 | WIN | 2
—————————-
6 | WIN | 2
—————————-
-
Привет всем
———————--
id | name | prev_id
———————--
1 | absc | 2
———————--
2 | dbcs | 3
———————--
3 | cols | 4
———————--
4 | noth | 0
prev_id - id предыдущий строки
Можно ли select делать такой запрос который подключает как колонка предыдущий строки ?
-
У меня имеется 2 таблиц
1. search_result
2. products
хотелось бы подсчитать сколько строк находится в таблице products который у таблиц указано поля search_result.query_text
SELECT
s.id,
s.query_text
( select count(*) from products where name concat('%', s.query_text, '%') limit 0, 1 ) as total
FROM search_result AS s
GROUP BY s.query_textвообще то такое возможно?
-
Как выровнять текстовые блоки
Как можно делать блоки ровным. От зависимости текста. Одного блока больше текст и остальные высота боки чтобы были ровным.
-
Лучше изучайте ExtJS
-
$text = ' hallow world "nothing i fill" current "asdasd"';
нужно удалить пробелы вне кавычки ....
-
Посмотрите ...
<html>
<head>
<title> Calendar </title>
</head>
<style>
/* CALENDAR */
table.cal { border-collapse: collapse; border: 1px solid #eaeaea; }
table.cal td { text-align: center; }
td.center { font-weight: bold; color: #216792; }
td.prev { width: 25px; text-align: center; }
td.prev a { font-wegith: bold; }
td.center { text-align: center; width: 100%; }
td.next { width: 25px; text-align: center; }
td.next a { font-wegith: bold; }
table.cal td { padding: 3px; }
/* current date */
table.cal td.cdt { background: #f0f4fe; font-weight: bold; }
/* current date is sunday */
table.cal td.scd { background: #E83903; color: #fff; }
/* default days */
table.cal td.def { color: #5b6376; }
/* sunday days */
table.cal td.sbg { color: #dc143c; background: #f7f7f7; }
/* week defaults */
table.cal tr.week td { width: 20px; text-align: center; }
/* week default sunday day */
table.cal td.wsd { background: #000064; color: #ffffff;}
/* week default days */
table.cal td.wdd { background: #e0eaff; color: 4974d5; }
/* week selected day */
table.cal td.wsl { background: #e0eaff; color: #000064;}
table.cal td.wss { background: #ffa500; color: #ffffff;}
</style>
<body>
<?php
class Calendar {
var $year;
var $month;
var $date;
var $leap;
var $lang;
var $path;
var $dates;
function Calendar($l)
{
$this->year = date('Y');
$this->month = date('n');
$this->date = date('j');
$this->leap = date('L');
$this->lang = $l;
$this->month_names = array(
'uz'=>array(1=>'Yanvar', 'Fevral', 'Mart', 'Aprel', 'May', 'Iyun', 'Iyul', 'August', 'Sentyabr', 'Oktyabr', 'Noyabr', 'Dekabr'),
'ru'=>array(1=>'Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь'),
'en'=>array(1=>'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'Septempber', 'Oktober', 'November', 'December')
);
$this->week_names = array(
'uz'=>array('Du', 'Se', 'Ch', 'Pa', 'Ju', 'Sh', 'Ya'),
'ru'=>array('Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб', 'Вс'),
'en'=>array('Su', 'Mo', 'Tu', 'We', 'Tr', 'Fr', 'St')
);
$this->dates = array();
}
function Days(){
if($this->month==3 or $this->month==6 or $this->month==9 or $this->month==11){
return 30;
}else if($this->month==2){
if($this->leap){
return 29;
}else{
return 28;
}
}else{
return 31;
}
}
function First(){
$first_day = date('w', mktime(0, 0, 0, $this->month, 1, $this->year));
if($this->lang=='uz' or $this->lang=='ru'){
$first_day = ($first_day==0) ? 6 : $first_day - 1;
}
return $first_day;
}
function Week(){
return date('w', mktime(0, 0, 0, $this->month, date('d'), $this->year));
}
function Body()
{
$count_days = 0;
$space_days = 0;
$tbl = "<table cellspacing=0 cellpadding=0 border=0 class='cal'>";
$tbl.= "<tr>";
$tbl.= "<td colspan=7 align=center>";
$tbl.= "<table cellspacing=0 cellpadding=0 border=0 style='border-collapse:collapse'>";
$tbl.= "<tr>";
if(($this->month-1)==0){
$tbl.= "<td class='prev'><a href='".$this->path."y=".($this->year-1)."&m=12&d=".$this->date."'>«</a></td>";
}else{
$tbl.= "<td class='prev'><a href='".$this->path."y={$this->year}&m=".($this->month-1)."&d=".$this->date."&a=p'>«</a></td>";
}
$tbl.= "<td class='center'>".$this->month_names[$this->lang][$this->month]." ".$this->year."</td>";
if(($this->month+1)==13){
$tbl.= "<td class='next'><a href='".$this->path."y=".($this->year+1)."&m=1&d=".$this->date."&a=n'>»</a></td>";
}else{
$tbl.= "<td class='next'><a href='".$this->path."y={$this->year}&m=".($this->month+1)."&d=".$this->date."'>»</a></td>";
}
$tbl.= "</tr>";
$tbl.= "</table>";
$tbl.= "</td>";
$tbl.= "</tr>";
$tbl.= "<tr class='week'>";
for($col=0; $col<7; $col++){
$w = $this->Week();
$val = $this->week_names[$this->lang][$col];
if($this->lang=='uz' or $this->lang=='ru'){
if($w==0 && $col==6){
$tbl.= "<td class='wss'>{$val}</td>";
}else{
if($col==($w-1)){
$tbl.= "<td class='wsl'>{$val}</td>";
}else{
$cls = ($col==6) ? 'wsd' : 'wdd';
$tbl.= "<td class='$cls'>{$val}</td>";
}
}
}else{
if($col==$w){
$cls = ($col==0) ? 'wss' : 'wsl';
$tbl.= "<td class='{$cls}'>{$val}</td>";
}else{
$cls = ($col==0) ? 'wsd' : 'wdd';
$tbl.= "<td class='{$cls}'>{$val}</td>";
}
}
}
$tbl.= "</tr>";
for($row=0; $row<6; $row++){
$tbl.= "<tr>";
for($col=0; $col<7; $col++){
if($space_days<$this->First()){
$tbl.= "<td> </td>";
}else{
$count_days++;
if($count_days<=$this->Days()){
$en = ($this->lang=='en') ? 0 : 6;
if($count_days==date('d')){
$cls = ($en==$col) ? 'scd' : 'cdt';
$tbl.= "<td class='{$cls}'>";
if($this->getDates($count_days)){
$m = $this->month;
$d = $count_days;
$tbl.= "<a href='".$this->path."y={$this->year}&m={$m}&d={$d}'><b>{$count_days}</b></a>";
}else{
$tbl.= $count_days;
}
$tbl.= "</td>";
}else{
$cls = ($en==$col) ? 'sbg' : 'def';
$tbl.= "<td class='{$cls}'>";
if($this->getDates($count_days)){
$m = $this->month;
$d = $count_days;
$tbl.= "<a href='".$this->path."y={$this->year}&m={$m}&d={$d}'><b>{$count_days}</b></a>";
}else{
$tbl.= $count_days;
}
$tbl.= "</td>";
}
}else{
$tbl.= "<td> </td>";
}
}
$space_days++;
}
$tbl.= "</tr>";
}
$tbl.= "</table>";
return $tbl;
}
function setAction()
{
if(!empty($_GET['y']) && !empty($_GET['m']) && !empty($_GET['d']))
{
$y = (int) $_GET['y'];
$m = (int) $_GET['m'];
$d = (int) $_GET['d'];
if(is_numeric($y) && is_numeric($m) && is_numeric($d)){
if($y>=2000 && $y<=2050){ $this->year = $y; }
if($m<=12){ $this->month = $m; }
if($d<=$this->Days()){ $this->date = $d; }
}
}
}
function getDates($d)
{
$result = 0;
if(is_array($this->dates) && count($this->dates)>0){
foreach($this->dates as $k=>$v){
if(!preg_match("/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})$/i", $v)){
die("Incorrect date: {$v}");
}else{
$m = ($this->month<10) ? '0'.$this->month : $this->month;
$c = ($d<10) ? '0'.$d : $d;
$y = $this->year;
$l = trim($y.'-'.$m.'-'.$c);
if(strcmp($v, $l)==0){ $result = 1; }
}
}
}
return $result;
}
}
$cal = new Calendar('ru'); // ru | en
$cal->setAction();
$cal->path = 'calendar.php?';
$cal->dates = array('2009-08-21');
print $cal->Body();
?>
</body>
</html> -
Кто нибудь установил MCFileManager или MCImagerManager
я попробуя у меня вообще не получаестя ... ?
Fatal error: Trying to get out of defined root path. Root: Z:/home/192.168.1.4/www/editor/jscripts/tiny_mce/plugins/imagemanager/images, Path: Z:/home/192.168.1.4/www/editor/imagemanager/images in Z:\home\192.168.1.4\www\editor\jscripts\tiny_mce\plugins\imagemanager\classes\FileSystems\FileFactory.php on line 91
даёт такая ошибка
-
SELECT cm_message
from `chat_messages`
order by `cm_id` desc limit 10
-
Нашёл всё как это делать. Индексировать надо ...
-
я вижу половину запроса бреда который вообще лишний smile.gif
что то тут лишний?
-
Привет всем!!!
у меня есть триггер который удаляет из двух таблиц:
DELIMITER #
CREATE TRIGGER `otz_delete` BEFORE DELETE ON orders_status_otzvon
FOR EACH ROW BEGIN
/* delete from crm_telephony */
DELETE FROM crm_telephony WHERE id_zv=OLD.id_zv AND type='otzvon';
/* delete from crm_log */
DELETE FROM crm_log WHERE log_id=OLD.id_zv AND process=28;
END;#Результат можно посмотреть здесь (это у меня локалке так работает 26 сек) :
-
У меня есть такой sql код:
select
sites.*,
cats.cat_id as cat_id,
scats.name as cat_name,
aff.affiliate_firstname as affiliate_firstname,
aff.affiliate_email_address as aff_mail,
afs.view as view,
afs.in_cart as in_cart,
afs.orders as orders,
afs.customers as customers,
afs.date as date,
afs.uniq_hosts_liv as uniq_hosts_liv,
afs.uniq_hosts_ramb as uniq_hosts_ramb,
afs.pages_liv as pages_liv,
afs.pages_ramb as pages_ramb,
afs.tic as tic,
afs.pr as pr
from
affiliate_sites as sites
left join affiliate_sites_to_category as cats on(sites.id=cats.affiliate_site)
left join affiliate_sites_category as scats on(cats.cat_id=scats.id)
left join affiliate_affiliate as aff on(sites.affiliate_id=aff.affiliate_id)
left join affiliate_statistics as afs on(sites.id=afs.affiliate_site)left join affiliate_statistics as afs on(sites.id=afs.affiliate_site)
в этой таблице очень много записав мне нужно только один запись примерно так: ORDER afs.date DESC LIMIT 0,1
-
Здравствуйте ...
для не которых таблицы я сделал тригерры. Тригеррые запустил в MySQL front и MySQL HeidiSQL там работает все классно
вот триггеры:
DELIMITER $$
DROP TRIGGER IF EXISTS `cdr_update`$$
CREATE TRIGGER `cdr_update` AFTER UPDATE ON cdr
FOR EACH ROW BEGIN
/* update crm_telephony */
UPDATE crm_telephony SET
id_zv = NEW.id_cd,
orders_id = NEW.orders_id,
man_id = NEW.man_id,
type_zv = NEW.type_zv,
telephone = NEW.telephone,
date_start = NEW.calldate,
duration = NEW.billsec,
status = NEW.disposition,
record = NEW.userfield,
comment = NEW.comment,
dest = NEW.dst
WHERE id_zv=OLD.id_cd AND type='cdr';
/* update crm_log */
UPDATE crm_log SET
log_id = NEW.id_cd,
man_id = NEW.man_id,
date_start = NEW.calldate,
date_finish = DATE_ADD(NEW.calldate, INTERVAL NEW.duration SECOND),
telephone = NEW.telephone,
dest = NEW.dst,
type = 29,
type_zv = NEW.type_zv,
action = 'view',
comment = NEW.comment,
process = 29,
orders_id = NEW.orders_id
WHERE log_id=OLD.id_cd AND process=29;
END;$$
/* insert cdr table trigger */
DELIMITER $$
DROP TRIGGER IF EXISTS `cdr_insert`$$
CREATE TRIGGER `cdr_insert` AFTER INSERT ON cdr
FOR EACH ROW BEGIN
/* insert crm_telephony */
INSERT INTO crm_telephony SET
id_zv = NEW.id_cd,
orders_id = NEW.orders_id,
man_id = NEW.man_id,
type_zv = NEW.type_zv,
type = 'cdr',
telephone = NEW.telephone,
date_start = NEW.calldate,
duration = NEW.billsec,
status = NEW.disposition,
record = NEW.userfield,
comment = NEW.comment,
dest = NEW.dst;
/* insert crm_log */
INSERT INTO crm_log SET
log_id = NEW.id_cd,
man_id = NEW.man_id,
date_start = NEW.calldate,
date_finish = DATE_ADD(NEW.calldate, INTERVAL NEW.duration SECOND),
telephone = NEW.telephone,
dest = NEW.dst,
type = 29,
type_zv = NEW.type_zv,
action = 'view',
comment = NEW.comment,
process = 29,
orders_id = NEW.orders_id;
END;$$но когда запускаю в phpMyAdmin даёт ошибка ...?
можно ли в phpmyadmin запускать не сколько триггеров сразу ... ?
спасибо за ответы ...
-
http://fanat.uz обсуждайте работу
-
возникла ещё один проблема а можно ли использовать триггеры два разных таблиц
например у меня есть таблица - А
для Б(таблиц) и В(таблиц) - я хотел использовать тригееры инсерт но там появляется такая ошибка:
/* SQL Error: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table' */
-
trigger - разрешено
спасибо за ответы .....
очень благодарен
-
так пробовал но c пейджингом беда:
(SELECT id_zv as id_zv, orders_id as orders_id, type_zv as type_zv, man_id as man_id, telephone as telephone, date_start as date_start, last_mod as last_mod, prodolwit as prodolwit, is_ok as is_ok, local_hour as local_hour, count as count, record as record, comment as comment, 'phone' as type, '' as dest FROM orders_status_otzvon WHERE ( `type_zv` = 'sip_not_answered' OR `man_id` = 100 ) AND (`is_ok` = 0 AND `orders_id` = 1785 AND `date_start` >= '2009-06-06 12:00:33' AND date_start<='2009-07-09 12:00:12 23:59:00' AND `telephone` = 'TEST' ) ORDER BY date_start DESC LIMIT 0, 20) UNION (SELECT id_cd as id_zv, orders_id as orders_id, type_zv as type_zv, man_id as man_id, telephone as telephone, calldate as calldate, '' as last_mod, billsec as prodolwit, disposition as is_ok, '' as local_hour, '' as count, userfield as record, comment as comment, 'cdr' as type, dst as dest FROM cdr WHERE ( `type_zv` = 'sip_not_answered' OR `man_id` = 100 ) AND (disposition='NO ANSWER' AND `orders_id` = 1785 AND `calldate` >= '2009-06-06 12:00:33' AND calldate<='2009-07-09 12:00:12 23:59:00' AND `telephone` = 'TEST' ) ORDER BY calldate DESC LIMIT 0, 20) ORDER BY date_start DESC LIMIT 0, 20
-
там 200 000 записей
-
Вот у меня есть такой SQL:
(SELECT
`id_zv` AS `id_zv`,
`orders_id` AS `orders_id`,
`type_zv` AS `type_zv`,
`man_id` AS `man_id`,
`telephone` AS `telephone`,
`date_start` AS `date_start`,
`last_mod` AS `last_mod`,
`prodolwit` AS `prodolwit`,
`is_ok` AS `is_ok`,
`local_hour` AS `local_hour`,
`count` AS `count`,
`record` AS `record`,
`COMMENT` AS `COMMENT` ,
'phone' AS `TYPE` ,
'' AS `dest`
FROM orders_status_otzvon WHERE 0 =0 )
UNION (
SELECT
`id_cd` AS `id_zv`,
`orders_id` AS `orders_id`,
`type_zv` AS `type_zv`,
`man_id` AS `man_id`,
`telephone` AS `telephone`,
`calldate` AS `date_start`,
'' AS `last_mod`,
`billsec` AS `prodolwit`,
`disposition` AS `is_ok`,
'' AS `local_hour`,
'' AS `count`,
`userfield` AS `record`,
`COMMENT` AS `COMMENT` ,
'cdr' AS `TYPE` ,
`dst` AS `dest`
FROM cdr
WHERE 0 =0)
ORDER BY `date_start` DESC
LIMIT 0 , 25у меня локалке работает 0.078 -
а сервере 10 сек (долго) ...
кто нибудь знает как ускорить процесс ?
-
Вот у меня есть такой query и я созадю view чтобы было удобно работать с условиями иначе каждому отдельный условия написать надо
всё работает но с скоростью беда !!!!
ест ли какой нибуд способ чтобы он работал быстро
create or replace view log_tables as
(select
cd.id_cd as id,
cd.man_id as man_id,
concat(man.username, ' ',man.lastname) as actor_name,
cd.calldate as date_start,
DATE_ADD(cd.calldate, INTERVAL cd.duration SECOND) as date_finish,
29 as type,
'view' as action,
cd.comment as comment
from
cdr as cd
left join managers as man on (cd.man_id = man.man_id)
)
union
(select
otz.id_zv as id,
otz.man_id as man_id,
concat(man.username, ' ',man.lastname) as actor_name,
otz.date_start as date_start,
DATE_ADD(otz.date_start, INTERVAL otz.prodolwit SECOND) as date_finish,
28 as type,
'view' as action,
otz.comment as comment
from
orders_status_otzvon as otz
left join managers as man on (otz.man_id = man.man_id)
)
union
(select
ohs.id as id,
ohs.manager_id as man_id,
concat(man.username, ' ',man.lastname) as actor_name,
ohs.date_open as date_start,
ohs.date_finish as date_finish,
3 as type,
'view' as action,
ohs.comments as comment
from
orders_status_history_work as ohs
left join managers as man on (ohs.manager_id = man.man_id)
)
union
(select
log.id as id,
log.actor_id as man_id,
concat(man.username, ' ',man.lastname) as actor_name,
log.date as date_start,
now() as date_finish,
0 as type,
'view' as action,
log.text as comment
from
log
left join managers as man on (log.actor_id = man.man_id)
) -
я тоже понял ... где тут ответ array_unique он убирает повторяющихся значении а мне нужен идентификаторы
-
вот массив:
а можно по нему сделать рекурсивную функцию который ищет паренты (37, 28, 29) по опеределённым идентификаторм (id)
$array = array(
array('id'=>1, 'type'=>38),
array('id'=>2, 'type'=>38),
array('id'=>3, 'type'=>38),
array('id'=>4, 'type'=>38),
array('id'=>5, 'type'=>37),
array('id'=>6, 'type'=>38),
array('id'=>7, 'type'=>38),
array('id'=>8, 'type'=>37),
array('id'=>9, 'type'=>38),
array('id'=>10, 'type'=>38),
array('id'=>11, 'type'=>38),
array('id'=>12, 'type'=>38),
array('id'=>13, 'type'=>38),
array('id'=>14, 'type'=>29),
array('id'=>15, 'type'=>38),
array('id'=>16, 'type'=>38),
array('id'=>17, 'type'=>38),
array('id'=>18, 'type'=>38),
array('id'=>19, 'type'=>27),
array('id'=>20, 'type'=>38),
array('id'=>21, 'type'=>38),
array('id'=>22, 'type'=>38),
array('id'=>23, 'type'=>38)
); -
здравствуйте дорогие программисты
мне нужно один вещь
ecть такой массив надо группировать его ...
$array = array(
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>37,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>29,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>27,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38
);как группировать если перед 38 нет не какой число который не равно на 38 значить он без типа, если после 37 там идет 38 надо группировать его 37=>array(все 38) до следующего 27 или 28
итого выводим вот такой результат
Без типа:
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
Тип с 37:
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>29,
type_id=>38,
type_id=>38,
type_id=>38,
Тип с 28:
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38,
type_id=>38Как можно реализовать такую структуру?
Спасибо за внимание....
появление блока, когда в text форму введен текст
in JavaScript
Posted
http://jsfiddle.net/U8Z2n/3/