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

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

Thread Status:
Not open for further replies.
  1. VDShark

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

    Joined:
    1 Feb 2007
    Messages:
    260
    Likes Received:
    158
    Reputations:
    62
    Можно было б и попробовать запустить :) По 4-му
     
    1 person likes this.
  2. mff

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

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    VDShark, спасибо! Всё работает! :)
     
  3. crazy~driver

    crazy~driver Member

    Joined:
    21 Dec 2008
    Messages:
    97
    Likes Received:
    14
    Reputations:
    4
    если чисто в мюслях то
    update table set field=CONCAT(field,'aaaaa');
    допишет в field строку aaaaa
    у меня работает и не только с полем text ;)
     
    #763 crazy~driver, 29 Sep 2009
    Last edited: 29 Sep 2009
    1 person likes this.
  4. referer1

    referer1 New Member

    Joined:
    29 Sep 2009
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    а вот я пытаюсь изменить косяк в базе с отображением буквы Ш и И...
    Но при попытке выполнить запрос мне выдает ошибку
    UPDATE `tbl` SET `pole` = REPLACE(
    `pole`,
    CONCAT( CHAR(209), CHAR(63) ),
    CONCAT( CHAR(209), CHAR(136) )
    );

    UPDATE `tbl` SET `pole` = REPLACE(
    `pole`,
    CONCAT( CHAR(208), CHAR(63) ),
    CONCAT( CHAR(208), CHAR(152) )
    );
    #1146 - Table 'madan21_mad.tbl' doesn't exist
    Вот я не могу врубиться что нужно вписывать вместо tbl ? вводил имя таблица к примеру jos3_banner но тогда ошибка была вида #1054 - Unknown column 'pole' in 'field list' хелп ми плиззз :'(?
     
  5. Architek86

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

    Joined:
    20 Feb 2008
    Messages:
    80
    Likes Received:
    1
    Reputations:
    0
    crazy~driver, благодарю.
    Однако до полного счастья осталось разобраться с ещё одним вопросом. Уверен, это реализуется легко. Есть значит выбранная строка из базы. Надо сделать запрос в базу так, что бы он выдал ещё 5 строк: 3 предыдущие и 2 более новые от данной строки (сортируя по дате создания полей - `time`). Каг?
    Выборка по полю id с auto_increment врядли подойдёт.. насколько я помню, при удалении строки список id не пересчитывается и мы можем иметь такие записи:
    id name
    5 aaa
    6 bbb
    8 ccc
    В итоге вместо ожидамого id 7, предшествующему id 8, мы получим ошибку.
     
  6. crazy~driver

    crazy~driver Member

    Joined:
    21 Dec 2008
    Messages:
    97
    Likes Received:
    14
    Reputations:
    4
    referer1 слушай у меня твой запрос полностью пашет.
    я загнал в mysql-front запрос и единственное что изменил это поубирал кое - где кавычки.
    Вот сам запрос:
    UPDATE aaa SET vvv= REPLACE(
    'vvv',
    CONCAT( CHAR(209), CHAR(63) ),
    CONCAT( CHAR(209), CHAR(136) )
    );
    ааа - таблица
    vvv - столбец
    Поиграйся с кавычками и пробелами. Может в этом косяк или укажи имя таблицы полное (я имею в виду с бд, например document.aaa)
     
  7. Neoveneficus

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

    Joined:
    10 Apr 2008
    Messages:
    235
    Likes Received:
    126
    Reputations:
    23
    Я бы тебе посоветовал сделать два запроса к БД. Объединить их никак не получилось из-за limit'ов. Может, конечно, мало думал, но вариант пока только такой. Если кто-то объединит - будет интересно посмотреть, как это можно сделать.
    PHP:
    SELECT FROM `articlesWHERE `unixtime` < (SELECT `unixtimeFROM `articlesWHERE `articleid`='53'ORDER BY `unixtimeDESC limit 0,3;
    SELECT FROM `articlesWHERE `unixtime` >= (SELECT `unixtimeFROM `articlesWHERE `articleid`='53'ORDER BY `unixtimeASC limit 0,3;
     
    #767 Neoveneficus, 29 Sep 2009
    Last edited: 30 Sep 2009
  8. FireFenix

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

    Joined:
    3 Jun 2009
    Messages:
    390
    Likes Received:
    115
    Reputations:
    23
    Если передаётся какой-то индетификатор строки, то почему незя с ним передавать абсолютное положение строки в БД?

    Code:
    <a href="?act=show&id=53&pos=153">Строка 153</a>
    PHP:
    mysql_query('SELECT * FROM arcticles LIMIT ' $pos ', 6');
    думаю это более рациональное
     
  9. Neoveneficus

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

    Joined:
    10 Apr 2008
    Messages:
    235
    Likes Received:
    126
    Reputations:
    23
    По какому принципу формируется твоя ссылка?
    Представь, что человеку нужно отобразить статью по id (передается GET'ом) и отобразить две более ранних и три более поздних, если есть...
    как ты это сделаешь, если зависимоть только от id?
    И еще, твоя конструкция не будет работать, если $pos меньше двух.
     
  10. eNergy

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

    Joined:
    21 Jul 2007
    Messages:
    149
    Likes Received:
    32
    Reputations:
    -5
    ломаю сайт при пподстановки ковычки пишет
    какой еще рефер нужен перебрал столбцы до 30 все одно и тоже
     
  11. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    ошибся темой - тебе сюда
    кавычку в форму пихаешь?
    +давай линк на ресурс.
    ЗЫ пробуй ' OR 1=1#, если повезет -- получишь инфу из `www_referer`
     
  12. $n@ke

    $n@ke Elder - Старейшина

    Joined:
    18 Sep 2006
    Messages:
    696
    Likes Received:
    404
    Reputations:
    134
    Суть вопроса:
    Есть 2 таблицы, 1 и 2.
    в табл.1 есть поля - юзернейм,домен,путь
    в табл.2 есь поля - юзернейм, пасс.
    Юзернеймы одинаковые, но порядок и ИД - не совпадают.
    то есть необходимо какое-то сравнение поля юзернейм чтоле, чтобы брал из второй таблицы только того юзера и пароль, который в данный момент выбран из первой таблицы))
    Внимание, Вопрос:
    (Что? ГДе? Когда? отдыхает =))

    Какой запрос должен быть,что б я получил в итоге в файле или в таблице или в на экране, данные по примерно такому шаблону:
    1.username,1.domain,1.path,2.pass

    где 1- первая табла, 2 - вторая.
     
  13. p0is0n

    p0is0n New Member

    Joined:
    8 Jun 2007
    Messages:
    12
    Likes Received:
    2
    Reputations:
    0
    HTML:
    SELECT
    	`t1`.username, `t1`.domain, `t1`.path, `t2`.pass
    FROM `t1` INNER JOIN `t2` ON `t1`.username = `t2`.username
     
    1 person likes this.
  14. $n@ke

    $n@ke Elder - Старейшина

    Joined:
    18 Sep 2006
    Messages:
    696
    Likes Received:
    404
    Reputations:
    134
    Спасибо большое!) Работает.
     
  15. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    Я в виртуальной машине Ubuntu 9.04 и у меня есть возможность поднять репу кому-либо!

    А как мне сменить кодировку базы данных или всего Mysql на utf-8??

    зы: phpmyadmin у меня нету
    посоветуйте простой и элегантный способ.

    ПО-МА-ГИ-ТЕ
     
    #775 superboy4, 4 Oct 2009
    Last edited: 4 Oct 2009
  16. superboy4

    superboy4 Banned

    Joined:
    17 Jul 2007
    Messages:
    151
    Likes Received:
    19
    Reputations:
    -8
    я уже замучился, ничего не помогает. Хочу чтобы в Mysql была кодировка UTF-8, а у меня сейчас latin1 :mad: :mad:
     
  17. ZirroCool

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

    Joined:
    16 Sep 2006
    Messages:
    128
    Likes Received:
    55
    Reputations:
    20
    При создании новой БД можно явно указать кодировку:
    Code:
    mysql> create database 'database_name' DEFAULT CHARACTER SET utf8 
    mysql> COLLATE utf8_bin;
    
    Если вам нужно поменять кодировку для уже существующих таблиц, выполните следующую команду:
    Code:
    mysql> ALTER TABLE `table_name` DEFAULT CHARACTER SET utf8 COLLATE 
    mysql> utf8_general_ci; 
    
     
    2 people like this.
  18. crazy~driver

    crazy~driver Member

    Joined:
    21 Dec 2008
    Messages:
    97
    Likes Received:
    14
    Reputations:
    4
    superboy4, если у тя мюсли версии 5.x, то сделай следующее:
    в конфигурационном файле /etc/my.cnf, раздел mysqld
    добавь следующее:
    PHP:
    default-character-set=utf8
    character
    -set-server=utf8
    collation
    -server=utf8_general_ci
    init
    -connect="SET NAMES utf8"
    skip-character-set-client-handshake
    а в раздел mysqldump добавь только
    PHP:
    default-character-set=utf8
    Коли версия другая, отпишись че то придумаем :)
     
  19. qW1zer

    qW1zer Member

    Joined:
    24 Aug 2009
    Messages:
    129
    Likes Received:
    15
    Reputations:
    5
    Здравствуйте,в общем раньше с мускулом сам не работал!Не приходилось писать подключения или еще что-либо!Сейчас столкнулся с очень таки нужной темой,проблема в том что я не представляю пока что как и что!
    Суть:сделать что-то вроде регистрации!
    Подскажите не на примере а на словах и с помощью каких функций в php можно сделать следующее:
    Юзверь,заходит на страницу,вбивает данные в форму!Данные с этой формы вбиваются в мускул базу!
    Расскажите как,что и почему!
    Если кто может показать пример,буду премного благодарен!Спасибо заранее
     
  20. REBUUS

    REBUUS Active Member

    Joined:
    6 Apr 2009
    Messages:
    314
    Likes Received:
    111
    Reputations:
    9
    $query =mysql_query("INSERT INTO `table_name` (`id`,`name`,`pole3`) values (null,'мия','значение')
    вот так через пхп заносят в мускул
     
Thread Status:
Not open for further replies.