Помощь с Мускулом - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: PC (/forum-4.html) +--- Форум: Programming (/forum-15.html) +--- Тема: Помощь с Мускулом (/thread-1446.html) Страниц: 1 2 |
Помощь с Мускулом - Rio - 01.01.2011 20:23 Сват нужна твоя помощь. Вот создают я таблицу запроосом в майсикъэл. CREATE TABLE PIDORS (PIDOR_Name char(15) PRIMARY KEY); т.е. таблицу "пидоры" с одноим столбцом (row'ом) Пидор_нейм длиной 15 символов и говорю что это у меня будет первичным ключом (хотя это не важно пока). Вот, оно создаёт таблицу, и пишет, что 0 rows affected каждый раз! как же это так? Приходится дополнительно писать alter, insert... Почему так? Почему оно сразу не может создать мне таблицу с нужными мне полями? замахался уже... RE: Помощь с Мускулом - SWAT - 01.01.2011 21:17 Должно работать. PHP код: DROP TABLE IF EXISTS `table_name`; Сообщение вида "0 rows affected" вообще к созданию таблиц в принципе не отностится. Оно выводит какое количество записей в таблице обработано. RE: Помощь с Мускулом - Rio - 01.01.2011 22:26 Вообще столько вопросов по этому MySql возникло... Если я создаю таблицу, например users, и в ней хочу: 1. Чтобы поле айди было беззнаковым. Как это сделать? Или нельзя? 2. Праймари кей. Я делаю поле айди первичным ключом для этой таблицы. Нужно мне тогда еще помимо PRIMARY KEY писать UNIQUE и NOT NULL или это и так подразумевается? 3. Как сделать так, чтобы первичным ключом было не одно поле а сразу два? (и более?) 4. Чем тип char отличается от varchar? (variable char?) 5. Как сделать запрет на добавление записей id которых меньше единицы? Спасибо. RE: Помощь с Мускулом - Rio - 01.01.2011 23:27 Охеренеть на него вообще никакие внушения не действуют, пишу PRIMARY KEY id и name все равно добавляет записи с одинаковым именем... охренеть... RE: Помощь с Мускулом - SWAT - 02.01.2011 12:28 Первичный ключ может быть только один, но он может быть составным типа: PHP код: PRIMARY KEY (`id`,`user_name`) Беззнаковое поле - unsigned Поле id инкрементится само, поэтому его не нужно добавлять вручную вовсе, добавляй только user_name. PHP код: DROP TABLE IF EXISTS `table_name`; RE: Помощь с Мускулом - Rio - 02.01.2011 17:18 Спасибо большое. Вот еще скрипт, никак не хочет работать: PHP код: <HTML> В тайтл не выводит ничего, хотя должен вывести текст из строчки базы даных. там один столбец всего с параметрами, вот хочу чтобы n-ый вывело. не хочет. http://s2.ipicture.ru/uploads/20110102/6E2KBxcx.gif RE: Помощь с Мускулом - SWAT - 02.01.2011 23:02 Так ты указываешь на не существующий индекс в массиве, у тебя же 1 колонка там, поэтому нужно выводить: PHP код: echo $r[0]; А чтобы добраться до нужного ряда с колонками, вызывай в цикле: PHP код: mysql_fetch_row($q); ...пока не доберешся до нужного. А вообще странная таблица... С одной колонкой таблица = бессмысленная таблица. RE: Помощь с Мускулом - Rio - 03.01.2011 13:07 Уже разобрался с этим... Теперь у меня проблемы с кодировками. Мне от нее и нужен один столбец. Я использую ее как хранилище данных а не как хранилище. RE: Помощь с Мускулом - SWAT - 03.01.2011 16:59 У тебя в этой таблице нет зацепки, как достать нужное название, что в итоге приводит к хардкоду, где тебе необходимо достать все записи и потом в цикле бежать до нужной, это очень позорно RE: Помощь с Мускулом - Rio - 03.01.2011 17:47 А так не придется бежать? Или мне по столбцу создавать для каждого параметра,при том что он всего один?) Все равно придется вызывать PHP код: mysql_fetch_row($query); Или ты знаешь способ обойти это? RE: Помощь с Мускулом - SWAT - 03.01.2011 19:22 Если бы у таблицы describe_forum было бы хотябы поле ID, тебе достаточно было бы указать его в запросе (where id=1) и при первом же (да и единственном) вызове mysql_fetch_row($query); ты бы получил нужную запись. По поводу остального я не понял что ты конкретно хочешь. Вытащить просто список постов из определенной темы? RE: Помощь с Мускулом - Rio - 03.01.2011 22:42 Не смотри, короче: Мне надо показать напротив форума в таблице ту тему, изменения в которую (в данном форуме) заносились последними. Как это лучше сделать? Кстати гемморой: Запрос: PHP код: $q=mysql_query('select forum_name from forums where forum_id='.$forum_id); инструкция PHP код: echo mysql_fetch_row($q); а для того чтобы вывести текст приходится делать такое извращение: PHP код: for($i=0; $i<18; $i++) где $r - результат фетч_роу от запроса. RE: Помощь с Мускулом - SWAT - 04.01.2011 16:09 mysql_fetch_row($q); возвращает индексный массив с полями. юзай mysql_fetch_assoc($q); и будешь выводить так echo $r['forum_name'], хотя в первом случае у тебя должно быть тоже все просто, типа echo $r[0]; не понимаю откуда у тебя там 18 полей. По поводу вывода темы, т.е. входной параметр это forum_id так? RE: Помощь с Мускулом - Rio - 04.01.2011 22:12 Так вот оно возвращает мне не целый рядок со значениями а только значение первого рядка одного столбца и чтоб его вывести нужно писать такую вот хрень, ибо без этого выведет только 5 первых символов там и т.п. Да, forum_id и только. P.S. не хочу жаловаться но честно уже устал от этого php как-то... RE: Помощь с Мускулом - SWAT - 05.01.2011 10:50 Тебе просто нужно взять книжку и почитать обо всем этом, хотябы основы, тогда все станет ясно. PHP код: select p.post_text as post, p.timestamp as ts from table_posts as p PHP код: select p.post_text as post, p.timestamp as ts, f.forum_name as forum from table_posts as p RE: Помощь с Мускулом - Rio - 09.01.2011 15:06 Да уже пройденный этап, спасибо за совет Сват. Дело не в самих запросах ибо в запросах я вроде неплохо шарю, сложность в самой архитектуре таблиц. Ведь тред - это не только тред сам по себе, к нему же еще и пост какой-нибудь привязан. Т.е. когда создаешь новый тред обязательно нужно кроме названия темы и описания ввести еще какой-нибудь текст... Вот с этим у меня сейчас проблема. И вот еще. Зачем на многих форумах указывает еще кроме идентификатора поста для Showpost.php еще и его номер относительно темы? Ведь идентификатор глобальный и к треду (сам по себе) никак не привязан (в глобальном контексте). Я так понимаю это создано просто для удобства, ибо никакой смысловой нагрузки для сценария вывода поста не несет, ибо номер поста относительно треда важен только в контексте самой темы, не так ли? RE: Помощь с Мускулом - SWAT - 09.01.2011 18:47 Я вообще не понимаю зачем еще айди поста передавать, ведь ты заходишь в тему, где много постов, а значит нужно передавать только айди темы чтобы показать саму тему и ее посты. Как пример щас в адресную строку глянь. Какие у тебя проблемы при создании то? Ну когда создаешь тему делай еще и пост и привязывай его к теме этой... по моему все элементарно. RE: Помощь с Мускулом - Rio - 15.05.2012 14:21 Сват не в курсе какие еще есть методы поиска средствами SQL помимо select / like и regexp? Мне нужно организовать поиск по тексту записей в таблице, не знаю как лучше сделать. RE: Помощь с Мускулом - SWAT - 15.05.2012 17:02 Если ты ищешь мощный инструмент для полнотекстового поиска, то можно посмотреть в сторону Sphinx - http://sphinxsearch.com RE: Помощь с Мускулом - Rio - 15.05.2012 17:05 Да не мне что-то простое для курсового проекта. Но все равно спасибо. |