[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Глюк
anonimus
Памогите пожалуйста может кто с этим сталкивался у меня база данных у который три поля
word(слова) something length(длина)
когда я посылаю запрос например

SELECT *
FROM `dictinary`
WHERE word
LIKE "к%"

база выдает слова начинающиеся на:
к
и
й
л


и так глючат все запросы типа "LIKE"



Спустя 2 минуты, 9 секунд (1.12.2006 - 14:02) zilogo написал(а):
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

как уже кодировки запарили

Спустя 2 минуты, 42 секунды (1.12.2006 - 14:05) anonimus написал(а):
то есть
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
mysql_query ("SELECT * FROM `dictinary` WHERE word LIKE "к%"");:rolleyes:

Спустя 1 минута, 24 секунды (1.12.2006 - 14:06) zilogo написал(а):
посылай 3 строки сразу после коннекта к базе, а потом что хочешь делай, Бывает не помогает.

Спустя 10 минут, 56 секунд (1.12.2006 - 14:17) anonimus написал(а):
не на этот код<br>
 
<?php
include('config.inc.php');
$link=mysql_connect($cfg['host'], $cfg['user'], $cfg['password'], $cfg['port'], $cfg['socket']);
mysql_query ("set character_set_client='cp1251'", $link);
mysql_query ("set character_set_results='cp1251'", $link);
mysql_query ("set collation_connection='cp1251_general_ci'", $link);
 
$sql="SELECT *
FROM dictinary
WHERE word LIKE "к%"";
 
$qwe=mysql_query($sql, $link);
while($wqe=mysql_fetch_array($qwe)){
echo($wqe[0]."
");
};
?>
 



на что он мне выдает

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:usrapachehtdocs est_cod.php on line 13

Спустя 14 минут, 33 секунды (1.12.2006 - 14:31) md5 написал(а):
сделай print mysql_num_rows($qwe)

Спустя 1 минута, 4 секунды (1.12.2006 - 14:33) Leningrad00 написал(а):
Очень часто люди просят перевести сообщения об ошибках.
Рекомендуется: проверить таблицу на наличие записей и подумать над правильностью sql-запроса.

Спустя 15 секунд (1.12.2006 - 14:33) zilogo написал(а):
'"к%"'

Спустя 3 минуты, 56 секунд (1.12.2006 - 14:37) anonimus написал(а):
записи есть в запросе ошибок не вижу '"к%"' не помогает на print mysql_num_rows($qwe) выдает тоже самое но с функцией mysql_num_rows

Спустя 8 минут, 4 секунды (1.12.2006 - 14:45) md5 написал(а):
$query = "SELECT *
                 FROM `dictinary`
                 WHERE `word` LIKE 'k%'";
 
$sql = mysql_qurey($query,$link)
                                or die(mysql_error());

Спустя 23 минуты, 21 секунда (1.12.2006 - 15:08) anonimus написал(а):
Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (cp1251_general_ci,COERCIBLE) for operation 'like'

Спустя 2 часа, 14 минут, 34 секунды (1.12.2006 - 17:23) Ghost написал(а):
а в какой кодировке база?
и кстати о кодировках.. какая версия mySQL?

Спустя 2 часа, 26 минут, 18 секунд (1.12.2006 - 19:49) anonimus написал(а):
пятая

Спустя 59 минут, 46 секунд (1.12.2006 - 20:49) Ghost написал(а):
дык в 5-й с кодировками вроде зашибись как здорово, все хранится в koi8-r
измени настройки сравнения для поля "word" должно быть koi8r_general_ci, если там не это прописано, а после конекта к базе надо написать

mysql_query ("SET NAMES 'koi8r'");

Спустя 1 день, 20 часов, 44 минуты, 21 секунда (3.12.2006 - 17:33) anonimus написал(а):
ничего не помогает!:(

Спустя 6 минут, 16 секунд (3.12.2006 - 17:39) anonimus написал(а):
и главное вот это работает<br>
 
REGEXP "^к"
 

но рег выражения медление а скорость здесь критична тем более выражение LIKE я знаю гораздо лучше и для правильной генерации рег выр мне придется изучать еще и их

Спустя 3 минуты, 22 секунды (3.12.2006 - 17:43) Ghost написал(а):
anonimus,
Если есть доступ к PHPmyAdmin попробуй повводить запросы прямо там, т.о выяснишь - толи это глюк скриптов, толи с самой базой что-то нехорошее происходит

Спустя 1 минута, 57 секунд (3.12.2006 - 17:45) anonimus написал(а):
не я все и через свой скрипт тестю и через PHPmyAdmin результаты обсалютно одинаковые

Спустя 10 минут, 20 секунд (3.12.2006 - 17:55) Ghost написал(а):
значит с базой что-то не так. проверь, точно ли там 5-й стоит. и посмотри типы полей в таблице.. если нифига не ясно - дерни хостеров

Спустя 18 минут, 9 секунд (3.12.2006 - 18:13) anonimus написал(а):
у меня localhost проект делался для подщета кол ва вариаций поетому в инет выкладовать не имеет смысла
MySQL 5.0.22

Спустя 15 минут (3.12.2006 - 18:28) Ghost написал(а):
сори, у меня что на 4-й что на 5-й работает, полагаю что что-то с настройками не так, но зуб не дам
кстати, а с латынью все пашет - или та же фигня?

Спустя 7 минут, 1 секунда (3.12.2006 - 18:35) anonimus написал(а):
Слова в базе только на русском а для нормального теста нужно хотябы слов десять правильных и 20 неправильных а писать лень:)

Спустя 2 часа, 5 минут, 36 секунд (3.12.2006 - 20:41) anonimus написал(а):
Я всетаки заполнил таблицу латинскими словами некоторые из которых начинаются с h а остальные я просто от балды стучал по клаве так вот на запрос h он выдает слова которые начинаются на h но затем я пробовал запрос с a(латинсой) так он мне выдал 600 слов первые из которых начинаются на русскую а. Запрос LIKE "e%"(латинский) выдает такой же бред как и русский а рег выражения с латынью тоже норм работают

Спустя 53 минуты, 47 секунд (3.12.2006 - 21:35) Ghost написал(а):
кем и как заполнялась база?

Спустя 28 минут, 28 секунд (3.12.2006 - 22:03) anonimus написал(а):
слова на английском я заполнил сам создав массив и воспользовался функцией foreach а слова на русском - я скачял прогу для решения кросвордов там был файл с 54 тыс сущ нарицатульными. я программно почистил файл оставив только слова а потом все слова занес в бд

Спустя 8 минут, 1 секунда (3.12.2006 - 22:11) Ghost написал(а):
последовательность действий такая:
запускаешь запрос на а-латинское, 1-ю выбранную русскую запись перезаносишь ручками, запускаешь запрос еще раз

если перезанесенного слова нет - это повод к размышлению :)

Спустя 4 минуты, 17 секунд (3.12.2006 - 22:15) Ghost написал(а):
перезаносишь ручками - в смысле редактируешь вручную - заново заполняешь все поля в выбранной записи, а не заносишь еще одну такую же

Спустя 15 минут, 51 секунда (3.12.2006 - 22:31) anonimus написал(а):
не слово остается когда я его переписываю вручную

Спустя 7 минут, 17 секунд (3.12.2006 - 22:39) Ghost написал(а):
еще один вариант действия:
забиваешь в пхп-админе например, еще одну запись ааааа-русские, и запускаешь запрос с латинской а.
Запись находится?

Спустя 46 минут, 33 секунды (3.12.2006 - 23:25) anonimus написал(а):
да находит

Спустя 57 минут, 37 секунд (4.12.2006 - 00:23) Ghost написал(а):
anonimus,
какое сравнение установлено для таблицы?
koi8r_general_ci
cp1251_general_ci
cp866_general_ci

или еще может чего?

Спустя 13 часов, 41 минута, 48 секунд (4.12.2006 - 14:04) anonimus написал(а):
а как это узнать

Спустя 11 минут, 15 секунд (4.12.2006 - 14:16) Ghost написал(а):
в phpMyAdmin, когда смотришь список таблиц базы, и список полей таблицы, есть колонка "сравнение"

Спустя 4 часа, 34 минуты, 52 секунды (4.12.2006 - 18:51) anonimus написал(а):
я что то не понял :rolleyes: у меня phpMyAdmin 2.5.3

Спустя 2 минуты, 14 секунд (4.12.2006 - 18:53) Ghost написал(а):
догоняй :D
phpMyAdmin - 2.9.1.1

Спустя 24 минуты, 11 секунд (4.12.2006 - 19:17) anonimus написал(а):
счаз скачаю

Спустя 1 час, 49 минут (4.12.2006 - 21:06) Ghost написал(а):
скачивай :), ток перед тем как че-нить менять сделай резервную копию базы


_____________
Быстрый ответ:

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