[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQL запрос данных из таблицы
ntfs_ok
Доброго времени суток!

первый вопрос:
MySQL запрос данных из таблицы, без учёта регистра, руские символы! Но при какой должен тип иметь 'Сравнение'.

Второй очень важный вопрос:
Не посоветуете хорошую книгу или справку по MySQL, а то я пробовал понять при помощи phpMyAdmin и Google, но продвинулся не сильно sad.gif

И 3-й вопрос
что значит : Эта функция безопасна для обработки данных в двоичной форме.
Это чито для расширения кругозора rolleyes.gif

Заранее благодарен!



Спустя 1 час, 30 минут, 44 секунды (8.07.2009 - 02:09) kirik написал(а):
Цитата (ntfs_ok @ 7.07.2009 - 16:38)
MySQL запрос данных из таблицы, без учёта регистра, руские символы! Но при какой должен тип иметь 'Сравнение'.

Где вопрос?

Цитата (ntfs_ok @ 7.07.2009 - 16:38)
Не посоветуете хорошую книгу или справку по MySQL, а то я пробовал понять при помощи phpMyAdmin и Google, но продвинулся не сильно

Вообще лучше юзать оригинальную документацию, но можно обойтись и этой (по 4-й версии).


Цитата (ntfs_ok @ 7.07.2009 - 16:38)
что значит : Эта функция безопасна для обработки данных в двоичной форме.

Это значит что этой функцией можно обрабатывать любые данные (текст, код картинок, видеофайлов, и пр.)

Спустя 11 часов, 8 минут, 23 секунды (8.07.2009 - 13:17) ntfs_ok написал(а):
kirik, проблема в том, что я пытаюсь получить данные из таблицы, но без соблюдения регистра у меня не получается. если написать строку поиска в сооответственном регистре, то работает!
SQL
$query = "SELECT * FROM chsallcln WHERE ".clanname." like '%".cта."%'";


Спустя 6 часов, 17 минут, 38 секунд (8.07.2009 - 19:35) kirik написал(а):
ntfs_ok
А, понял. А какая у тебя сейчас кодировка БД/таблиц стоит?

Спустя 10 минут, 55 секунд (8.07.2009 - 19:45) ntfs_ok написал(а):
Оставил по дефалту:
Сравнение : cp1251_general_ci
MySQL-кодировка: (utf8)

Спустя 11 минут, 59 секунд (8.07.2009 - 19:57) kirik написал(а):
Хм.. general_ci должно регистронезависимо работать.. Даешь дамп таблицы?

Спустя 36 минут, 20 секунд (8.07.2009 - 20:34) ntfs_ok написал(а):
Цитата (kirik @ 8.07.2009 - 16:57)
Даешь дамп таблицы?

не понял...

Спустя 2 минуты, 44 секунды (8.07.2009 - 20:36) kirik написал(а):
ntfs_ok
Структуру таблицы. Если в phpMyAdmin работаешь, то это называется "Экспорт".

Спустя 12 минут, 47 секунд (8.07.2009 - 20:49) ntfs_ok написал(а):
Вот:
Свернутый текст
-- phpMyAdmin SQL Dump
-- version 2.11.5
-- http://www.phpmyadmin.net
--
-- Хост: localhost
-- Время создания: Июл 08 2009 г., 21:44
-- Версия сервера: 5.0.51
-- Версия PHP: 5.2.6

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- База данных: `primus`
--

-- --------------------------------------------------------

--
-- Структура таблицы `chsallcln`
--

CREATE TABLE IF NOT EXISTS `chsallcln` (
`clanid` varchar(10) NOT NULL,
`clanname` varchar(20) character set utf8 NOT NULL,
`userid` varchar(8) NOT NULL,
`username` varchar(40) NOT NULL,
`reason` text NOT NULL,
`sum` varchar(8) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;

--
-- Дамп данных таблицы `chsallcln`
--

INSERT INTO `chsallcln` (`clanid`, `clanname`, `userid`, `username`, `reason`, `sum`) VALUES
('atlant', 'Атланты', '186406', 'killa_0007', 'http://www.haddan.ru/b log.php?id=51728718 <br>http://www.haddan.ru/b log.php?id=51223884', '10000'),
('cos', 'Church of Satan', '592656', '-Saylar-', 'http://haddan.ru/blog. php?id=50017361, http://haddan.ru/blog. php?id=50017416', '10000'),
('vamp', 'Vampires', '661348', '_БеФиДоГ_', 'http://haddan.ru/blog. php?id=53658962 http://haddan.ru/blog. php?id=53659517 ', '5000'),
('vamp', 'Vampires', '654555', 'Mr Dropper', 'http://haddan.ru/blog. php?id=53672473 http://haddan.ru/blog. php?id=53683544 ', '5000'),
('vamp', 'Vampires', '636131', 'maksim10', 'жалоба № 29792739', '2000');


таблица большая, область данных я срзал

Спустя 2 минуты, 18 секунд (8.07.2009 - 20:52) kirik написал(а):
Цитата (ntfs_ok @ 8.07.2009 - 12:49)
жалоба в

У тебя все данные в таком виде? Из-за того что ты криво добавляешь даннные и не работает регистронезависимый поиск..

UPD
почитай тут

Спустя 2 минуты, 35 секунд (8.07.2009 - 20:54) ntfs_ok написал(а):
Я их получаю в utf 8 и записываю туда, а как надо?

Спустя 1 минута, 40 секунд (8.07.2009 - 20:56) kirik написал(а):
ntfs_ok
Кодировки нужно приводить к одному виду, если ты работаешь с 1251, то работаешь с ним везде (и БД, и скрипты и данные), если ты работаешь с юникодом, то работаешь с ним везде. Иначе тупых проблем не избежать (типа этой).

Спустя 1 минута, 43 секунды (8.07.2009 - 20:58) ntfs_ok написал(а):
у меня везде была utf 8.

Спустя 22 минуты, 5 секунд (8.07.2009 - 21:20) kirik написал(а):
Цитата (ntfs_ok @ 8.07.2009 - 12:58)
у меня везде была utf 8.

Однако таблица в 1251..

Спустя 21 минута, 11 секунд (8.07.2009 - 21:41) ntfs_ok написал(а):
1251? просто я ещё не совсем разобрался?
Когда я делал сравнение тожк utf 8 такой же рез-тат

Спустя 4 минуты, 27 секунд (8.07.2009 - 21:45) kirik написал(а):
Цитата (ntfs_ok @ 8.07.2009 - 13:41)
1251? просто я ещё не совсем разобрался?

Кодировка cp1251

Цитата (ntfs_ok @ 8.07.2009 - 13:41)
Когда я делал сравнение тожк utf 8 такой же рез-тат

После того как сделал utf8 записывал новые данные, или пробовал с теми что уже были?

Спустя 5 минут, 58 секунд (8.07.2009 - 21:51) ntfs_ok написал(а):
Я так и думал,что ты о перезаписи данных спросишь. со старыми..... sad.gif

Спустя 10 минут, 51 секунда (8.07.2009 - 22:02) ntfs_ok написал(а):
Базу обновил. Каритна таже sad.gif
Данные, отображаемые phpMyAdmin Атланты
Но на странице они выводятся кореектно....

Спустя 2 минуты, 45 секунд (8.07.2009 - 22:05) kirik написал(а):
Цитата (ntfs_ok @ 8.07.2009 - 13:51)
со старыми....

запиши в таблицу новые данные

Цитата (ntfs_ok @ 8.07.2009 - 14:02)
Данные, отображаемые phpMyAdmin Атланты
Но на странице они выводятся кореектно....

Так бывает, когда при записи данных в таблицу не верно выставляется (или не выставляется) кодировка соединения. Я тебе ссылку дал, почитай.

Спустя 14 минут, 9 секунд (8.07.2009 - 22:19) ntfs_ok написал(а):
Версия MySQL-клиента: 5.0.51a

Спустя 9 минут, 34 секунды (8.07.2009 - 22:29) kirik написал(а):
ntfs_ok
Ты кодировку соединения устанавливаешь?

Спустя 2 минуты, 15 секунд (8.07.2009 - 22:31) ntfs_ok написал(а):
там сказано для версий, которые вше моей.

Спустя 3 часа, 15 минут, 16 секунд (9.07.2009 - 01:46) kirik написал(а):
Цитата (ntfs_ok @ 8.07.2009 - 14:31)
там сказано для версий, которые вше моей.


Внимательнее читай
Цитата
(ну и функцию для совместимости с MySQL < 5.0.7)

Спустя 8 минут, 2 секунды (9.07.2009 - 01:54) ntfs_ok написал(а):
kirik, так там в коменте кода написано
PHP
NoteThis function requires MySQL 5.0.7 or later.

или ячто-то глючу!

Спустя 6 минут, 35 секунд (9.07.2009 - 02:01) kirik написал(а):
Запрос с SET NAMES не требует версии выше 5.0.7.

Спустя 15 часов, 13 минут, 48 секунд (9.07.2009 - 17:14) ntfs_ok написал(а):
Так, если я правильно понял, я должен скопировать весь код, установит соединение и вызвать
PHP
mysql_set_charset("utf-8",$bd);

И он ругается на эту строчку

Warning: mysql_set_charset() expects parameter 2 to be resource, boolean given in /home/.... on line 44

Спустя 16 минут, 29 секунд (9.07.2009 - 17:31) PandoraBox2007 написал(а):
$bd не указатель на подключения БД наверно там просто булевая переменная

Спустя 10 минут, 53 секунды (9.07.2009 - 17:42) ntfs_ok написал(а):
PHP
<?php
 if 
(function_exists('mysql_set_charset') === false) {
     /**
      * Sets the client character set.
      *
      * Note: This function requires MySQL 5.0.7 or later.
      *
      * @see http://www.php.net/mysql-set-charset
      * @param string $charset A valid character set name
      * @param resource $link_identifier The MySQL connection
      * @return TRUE on success or FALSE on failure
      */
     function mysql_set_charset($charset, $link_identifier = null)
     {
         if ($link_identifier == null) {
             return mysql_query('SET NAMES "'.$charset.'"');
         } else {
             return mysql_query('SET NAMES "'.$charset.'"', $link_identifier);
         }
     }
 }

вот код
но и без переменной $bd тоже так же ругается!user posted image

Спустя 34 минуты, 5 секунд (9.07.2009 - 18:16) ntfs_ok написал(а):
kirik,
Версия сервера: 5.0.51a-log
запрос делаю просто, без процедуры, не хочет он давать результат!

Спустя 1 час, 34 минуты, 47 секунд (9.07.2009 - 19:51) kirik написал(а):
ntfs_ok
Попробуй просто:
PHP
$db_link =  mysql_connect('localhost', 'root', '****');
            mysql_select_db('my_db', $db_link);

            mysql_set_charset('utf8', $db_link);
//          mysql_query("SET NAMES UTF8", $db_link);
            mysql_query("SET character_set_server = utf8", $db_link);


Если нет - закомменть mysql_set_charset и откомменть mysql_query. Данные для подключения ествесственно свои надо.
И после подключения выполни запрос на вставку.

Спустя 31 минута, 48 секунд (9.07.2009 - 20:23) ntfs_ok написал(а):
Всё! Заработало!
А так же надо и при запросе объявлять кодировку?

Всё! Понял! Большое Спасибо!

Спустя 22 минуты, 32 секунды (9.07.2009 - 20:45) kirik написал(а):
Цитата (ntfs_ok @ 9.07.2009 - 12:23)
А так же надо и при запросе объявлять кодировку?

Нет, только один раз после подключения. Этот код задает кодировку общения твоего скрипта с БД.

Спустя 20 минут, 32 секунды (9.07.2009 - 21:06) ntfs_ok написал(а):
kirik, не, я имел ввиду, что при каждом коннекте. Я уже понял smile.gif)
А если из 2 - х табл надо взять сведения по одинаковым полям, это...?
Просо я почитал http://www.lghost.ru/docs/mysql/refman-4.0...multiple-tables но не понял

Спустя 19 минут, 1 секунда (9.07.2009 - 21:25) kirik написал(а):
Цитата (ntfs_ok @ 9.07.2009 - 13:06)
А если из 2 - х табл надо взять сведения по одинаковым полям, это...?

Ты ведь одним запросом будешь использовать эти 2 таблицы? А запрос у тебя будет происходить через то подключение, кодировка которого уже установлена, тоесть все будет ОК (если конечно таблицы имеют одинаковую кодировку).

Спустя 6 минут, 25 секунд (9.07.2009 - 21:31) ntfs_ok написал(а):
не, я просто никак не могу понять, как - бы "объединить 2 таблицы" в одной есть ID а в другой расшифровка ID(название, владелец.....) я просто по той ссылке, что в начале дана была почитал, но не понял sad.gif

Спустя 40 минут, 12 секунд (9.07.2009 - 22:11) kirik написал(а):
ntfs_ok
а.. тебе JOIN нужен

Спустя 11 минут, 22 секунды (9.07.2009 - 22:23) ntfs_ok написал(а):
kirik, ты как звезда путиводная! biggrin.gif

Спустя 1 день, 3 часа, 19 минут, 35 секунд (11.07.2009 - 01:42) maximvg написал(а):
А чем тебя регистры смущают. Не нравятся регистры приведи их к одно виду. Например сделай все прописный перед добавлением в БД.

А про кодировки абсолютно согласен с kirik - тут надо уж както определиться, а то тупить будешь над каждой проблемой. Хотя можно получать в ср1251, а потом в юникод переводить. Только вот вопрос зачем?

Спустя 43 минуты (11.07.2009 - 02:25) kirik написал(а):
Цитата (maximvg @ 10.07.2009 - 17:42)
Не нравятся регистры приведи их к одно виду. Например сделай все прописный перед добавлением в БД.

А обратно как?


_____________
Не так страшен программист, как его программы, хотя и он тоже страшный!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.