[sql] Вопросы по БД

Discussion in 'PHP' started by FraiDex, 25 Feb 2008.

Thread Status:
Not open for further replies.
  1. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как из mySQL вывести "топ-10" столбца??? (Int)
     
  2. $now

    $now Member

    Joined:
    27 Apr 2009
    Messages:
    75
    Likes Received:
    9
    Reputations:
    3
    НTL
    Code:
    SELECT `colname`FROM `tablename`ORDER BY `colname` DESC LIMIT 0, 10
    где colname имя слобца, tablename имя таблицы
     
    #1102 $now, 28 Apr 2010
    Last edited: 28 Apr 2010
    1 person likes this.
  3. Rejiser

    Rejiser Member

    Joined:
    9 May 2009
    Messages:
    10
    Likes Received:
    9
    Reputations:
    0
    Произошла неприятная ситуация.
    Кто-то знав пароль от фтп, зашел и удалил все домены с фтп.
    Осталась БД от сайта и форума, сайт был на DLE, форум IPB, если я заного залью DLE, заного запустив установку, указал старую БД, которая есть в mysql, сотрутся-ли все записи в ней? или нет? как лучше поступить? А то техпо уже 2й день не отвечает.
    Копии БД на всякий случай сделал
     
  4. djpasica

    djpasica Banned

    Joined:
    23 May 2009
    Messages:
    28
    Likes Received:
    100
    Reputations:
    -4
    залей файлы от ДЛЕ и от IPB прописав дание от БД в sys файлах
     
  5. Rejiser

    Rejiser Member

    Joined:
    9 May 2009
    Messages:
    10
    Likes Received:
    9
    Reputations:
    0
    djpasica, т.е без повторной установки? просто указав все в файлах? я просто ззнаю 2 файла где конфиги пишутся, а может там есть еще?
    И еще вопрос, как создать каталог с сайтом на фтп? домен в панели привязан, но как его привязать к каталогу?
     
  6. $now

    $now Member

    Joined:
    27 Apr 2009
    Messages:
    75
    Likes Received:
    9
    Reputations:
    3
    Rejiser
    Конфиг хранится в одном файле.

    По поводу поддомена - положите в корень сайта файл .htaccess с примерно таким содержанием

    Code:
    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_HOST} ^forum\.domain\.ru$
    RewriteCond %{REQUEST_URI} !/forum/
    RewriteRule ^(.*)$ /forum/$1 [L]
    
    domain.ru - ваш домен (заметте экранировать точки бэкслэшами обязательно), forum - поддомен, он же имя папки

    А далее в админке хостинга нужно позаботится что бызапросы на все поддомены приходили на ваш сайт (обычно по умолчанию так и есть.)
     
  7. Rejiser

    Rejiser Member

    Joined:
    9 May 2009
    Messages:
    10
    Likes Received:
    9
    Reputations:
    0
    $now, спасибо, но форум у меня не был на поддомене. а имел адрес сайт.ру/forum
    $now, а вы случайно не знаете, где в DLE этот самый файл лежит?
     
  8. $now

    $now Member

    Joined:
    27 Apr 2009
    Messages:
    75
    Likes Received:
    9
    Reputations:
    3
    Я про то и говорю, после описанных махинаций форум будет виден по адресу forum.сайт.ру

    Конфиг скорее всего носит название config.php двльше ищите поиском (у cебя на компе в папке dle)
     
  9. Dark_cracker

    Dark_cracker Member

    Joined:
    29 May 2009
    Messages:
    73
    Likes Received:
    8
    Reputations:
    1
    как удалить одинаковые колонки в mysql
    нашёл запрос
    PHP:
    delete from TABLE where itableindex not in (select distinct from TABLE
    ну чёта он не работает (
     
  10. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    2 Dark_cracker
    Одинаковые "колонки" (атрибуты) или одинаковые "строки" (кортежи)?
    Попонятней пожалуйста, и побольше конкретики :)
     
  11. InfectedM

    InfectedM Elder - Старейшина

    Joined:
    4 Nov 2007
    Messages:
    155
    Likes Received:
    12
    Reputations:
    0
    Как увеличить значение ячейки на 1?
    считывать значение ячейки ,делать $a++ потом опять записывать - долго...
    может есть вариант получше?
     
  12. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    update `users` set `point`= `point`+'1' where `id`='2';
     
  13. НTL

    НTL Elder - Старейшина

    Joined:
    26 Jan 2008
    Messages:
    715
    Likes Received:
    205
    Reputations:
    -26
    Как используя только СУБД (MySQL) и phpmyadmin заполнить столбец всех записей случайными значениями?

    Ответ:
    Code:
    UPDATE `tabel` SET `name` =  MD5(RAND())
    
     
    #1113 НTL, 1 May 2010
    Last edited: 1 May 2010
  14. Dark_cracker

    Dark_cracker Member

    Joined:
    29 May 2009
    Messages:
    73
    Likes Received:
    8
    Reputations:
    1
    имелось введу строки , с тем разобрался ну всёравно не откозался бы от ответа...
     
    #1114 Dark_cracker, 3 May 2010
    Last edited: 3 May 2010
  15. VDShark

    VDShark Elder - Старейшина

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Если есть первичный ключ - особой проблемы не вижу. Берем по одному из дублирующихся, и удаляем кортежи с не совпадающими PK.
    Если же его нет (мало ли кто, как и зачем проектировал) - то почему бы не наживать себе геморрой и не воспользоваться временными таблицами?
     
    1 person likes this.
  16. OdaN

    OdaN Elder - Старейшина

    Joined:
    4 Mar 2006
    Messages:
    192
    Likes Received:
    17
    Reputations:
    1
    Помогите плз с оптимизацией:
    есть запрос:
    PHP:
    select w.city,r.name as cityname,w.sunrise,w.sunset,w.date,w.dpart,w.type,w.winddir,w.windspd,w.pressure,w.dampness,w.obstime,w.wcolor,w.temp,w.ncolor,w.ntemp,w.tomcolor,w.tomtemp,r.offset,
    if (
    w.sunrise date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')
    and 
    w.sunset date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'),
    timediff(w.sunset,date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),
    if (
    date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s') > '00:00:00' and
    date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s') < w.sunrise,
    timediff(w.sunrise,date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),
    addtime(timediff('23:59:59',date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')),w.sunrise))
    ) as `
    change`,
    if (
    w.sunrise date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s')
    and 
    w.sunset date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'),1,0) as lite,
    date_sub(now(), interval (14400-(r.offset)) second) as `localtime`
    from weather w left join regions r on w.city=r.city where w.city $city order by w.id desc limit 1
    Там часто используется выражения типа
    Code:
    date_format(date_sub(now(), interval (14400-(r.offset)) second),'%H:%i:%s'))
    
    для получения локального времени. как можно все это загнать в переменную, и в принципе уменьшить запрос, хотя-бы для экономии трафика?

    Используется тут: http://export.selaz.org/weather/


    Структура таблиц:
    Code:
    CREATE TABLE IF NOT EXISTS `regions` (
      `id` int(11) NOT NULL auto_increment,
      `yanid` int(11) NOT NULL,
      `city` int(11) NOT NULL,
      `name` varchar(64) NOT NULL,
      `offset` int(11) NOT NULL,
      `weather` tinyint(1) default NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `yanid` (`yanid`),
      UNIQUE KEY `city` (`city`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
    
    
    CREATE TABLE IF NOT EXISTS `weather` (
      `id` int(11) NOT NULL auto_increment,
      `city` int(11) NOT NULL,
      `sunrise` time NOT NULL,
      `sunset` time NOT NULL,
      `date` date NOT NULL,
      `dpart` tinyint(4) NOT NULL,
      `type` varchar(32) NOT NULL,
      `windspd` tinyint(4) NOT NULL,
      `winddir` varchar(8) NOT NULL,
      `pressure` smallint(6) NOT NULL,
      `dampness` tinyint(4) NOT NULL,
      `obstime` time NOT NULL,
      `temp` tinyint(11) NOT NULL,
      `wcolor` varchar(6) NOT NULL,
      `ncolor` varchar(6) NOT NULL,
      `ntemp` tinyint(4) NOT NULL,
      `tomcolor` varchar(6) NOT NULL,
      `tomtemp` tinyint(4) NOT NULL,
      PRIMARY KEY  (`id`),
      UNIQUE KEY `city` (`city`,`date`,`obstime`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
    
     
    #1116 OdaN, 4 May 2010
    Last edited: 4 May 2010
  17. dokwill

    dokwill New Member

    Joined:
    25 Jun 2007
    Messages:
    21
    Likes Received:
    1
    Reputations:
    0
    помогите составить запрос к бд

    есть таблица "data " в ней столбец "ALT" в этой таблице 35000 строк
    Нужно заменить все данные столбца "ALT" для всех сторок и вставить значение по порядку от 1 - 35000. Как это сделать.
    как то так ?
    Update "data"
     
  18. MotoR

    MotoR New Member

    Joined:
    25 Apr 2010
    Messages:
    6
    Likes Received:
    0
    Reputations:
    0
    "UPDATE data SET ALT='$i' WHERE id='$i'"

    где значение переменной $i от 1 до 35000, перебор осуществляется в цикле.
     
  19. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    как проверить если в таблице table1 есть запись с номером 1 в колонке id если есть то выбрать колонку value у id = 1, а если записи с id = 1 в table1 нету выташить запись из table2 с id = 99? =)

    зарание благодарен ))
     
  20. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    SELECT * FROM table WHERE id=1 or id=99 limit 1
     
Thread Status:
Not open for further replies.