Народ, здесь "SELECT * FROM `users` WHERE `nick`='$login'" (да и везде, где есть WHERE) nick и $login сравниваются с учётом регистра, или нет?? Если да, то как сделать без учёт регистра?
Зависит от коллации upd: Набросал небольшой примерчик. Создадим простую табличку: Code: CREATE TABLE IF NOT EXISTS `t2` ( `q` varchar(10) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; Закинм туда 2 кортежа: Code: aaa Aaa Сопаставление у нас utf8_general_ci (где ci значит case-insensetive, для тех кто не знает). Выполним запрос: Code: select * FROM t2 where q = 'aaa' получим Code: aaa Aaa А теперь выполним следующее: Code: select * FROM t2 where q = 'aaa' collate 'utf8_bin' получим Code: aaa Выводы напрашиваются сами =)
Мужики, Всем привет! Возникла такая проблема... Есть вот такой код: PHP: $user = $_COOKIE['user']; $key_id = $_POST['key_id']; $result = mysql_query("UPDATE base SET poster_id='$user', key_id='$key_id', post_date=NOW(), done='wait' WHERE page='$page' LIMIT 1",$db); Проблема в том, что: Код срабатывает всегда, но лишь частично, не смотря на то, что в $key_id всегда есть трёхзначное число и оно точно передаётся (не теряется) в результате пост запроса. Что значит частично: Т.е. иногда запись обновляется так как будто $key_id пуст. Примечание: Поле key_id в таблице base типа INT(5) Подскажите пожалуйста, в чём может быть проблема?
Эмм... Это реальный кусок кода? У тебяж тама SQL Inj =\ Юзай $key_id = intval($_POST['key_id']); И если $_POST['key_id'] будет буквами, то запишется 0 а не просто пустая строка
Пончик, большое тебе спасибо. Попробую сменить и посмотрим что будет. Так же спасибо за заботу, но это приватный скрипт, так что бояться нечего P.s. Ещё какие-нибудь предположения по поводу вышеизложенной проблемы будут? Заранее благодарен!
Появился ещё один вопрос, помогите с ним пожалуйста! Есть вот такой кусок кода: PHP: $result = mysql_query("SELECT count(*) FROM base WHERE pr='7'",$db); $se = mysql_fetch_array($result); $pr7 = $se[0]; $result = mysql_query("SELECT count(*) FROM base WHERE pr='6'",$db); $se = mysql_fetch_array($result); $pr6 = $se[0]; $result = mysql_query("SELECT count(*) FROM base WHERE pr='5'",$db); $se = mysql_fetch_array($result); $pr5 = $se[0]; $result = mysql_query("SELECT count(*) FROM base WHERE pr='4'",$db); $se = mysql_fetch_array($result); $pr4 = $se[0]; $result = mysql_query("SELECT count(*) FROM base WHERE pr='3'",$db); $se = mysql_fetch_array($result); $pr3 = $se[0]; $result = mysql_query("SELECT count(*) FROM base WHERE pr='2'",$db); $se = mysql_fetch_array($result); $pr2 = $se[0]; Т.е. в 6 переменных Я получаю кол-во страниц с заданными параметрами. По-моему так не должно быть, как оптимизировать эту группу запросов? Большое спасибо!
Так не годиццо? PHP: $result = mysql_query ("SELECT * FROM base WHERE pr = '2'", $db); $pr2 = mysql_num_rows ($result); --- Added: Либо же одним SQL-запросом Code: SELECT pr, COUNT(*) FROM base WHERE pr IN (7, 6, 5, 4, 3, 2) GROUP BY pr;
Не могу перенести БД MySQL форума Version 3.8.1 Проблема в том что форум создавался в Литвии и сама Бд создана в кодировке UTF-8 юникод Сравнение таблиц latin1_swedish_ci Если сделать дамп любой прогой или PhpMyAdmin`ом то будет такая бяка Даже если просто в PhpMyAdmin смотеть на это... Как сменить кодировку чтоб норм по русски было? Хотя нормально сейчас форум стоит, а вот переносится не хочет
http://www.artlebedev.ru/tools/decoder/ CP1252 → CP1251 выстави в браузере правильную кодировку и не парь мозг ЗЫЖ Нормальный дамп, бывают и хуже ЗЗЫЫЖЖ Ушол писать прогу для автоконвертации дампов в нужную кодировку, заманали
PHP: //Уствнока кодировки клиента mysql_query('SET character_set_client=cp1251'); //Уствнока кодировки запросов mysql_query('SET character_set_results=cp1251'); //Уствнока кодировки соединения mysql_query('SET character_set_connection=cp1251'); //Уствнока кодировки сервера mysql_query('SET character_set_server=cp1251'); Заменяешь cp1251 на нужную кодировку и радуешся жизни, только не попутай направление кодировок
подскажите, правильно ли на каждой странице прописывать/инклудить коннект к базе?сайт хоум на ней всего 3 страницы
Ну логично предположить что инклюдить файл в котором происходит конект к бд только в тех частях сайта где используеться данные из БД. Если речь идет про яп - PHP и бд MySQL то бы сказал рекомендуеться:
Вопрос: не возникнет ли конфликта? DROP TABLE IF EXISTS `vb_access`; SET @saved_cs_client = @@character_set_client; SET character_set_client = utf8; CREATE TABLE `vb_access` ( `userid` int(10) unsigned NOT NULL DEFAULT '0', `forumid` smallint(5) unsigned NOT NULL DEFAULT '0', `accessmask` smallint(5) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`userid`,`forumid`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; SET character_set_client = @saved_cs_client; Т.е. какая кодировка в базе будет - utf8 или cp1251 ?
Всем хай, нужна помощь с составлением MySql запроса. Задача: Из таблицы xxx надо удалить все записи у которых id равен 5(записей могут быть сотни), при этом у каждой записи есть поле name и для каждой удаляемой записи надо найди запись из таблицы yyy, в которой поле name совпадает с значением поля name удаляемой записи, и отнять от значения count поля из таблицы yyy еденицу. Как такое реализовать с наименьшим количеством запросов, если такое вообще возможно?