PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (83): В начало « ... 75 76 77 78 79 80 [81] 82 83 »

> Найдено сообщений: 1232
tuareg Отправлено: 28 Октября, 2011 - 03:10:58 • Тема: Как поменять мыло в bd • Форум: Напишите за меня, пожалуйста

Ответов: 6
Просмотров: 58
$select = mysql_query("SELECT * FROM users WHERE ???= "'.$email.'")or die(mysql_error());
Найдите отличия с Вашим Улыбка
P.S А слона то и не заметил Радость Какое поле проверять-то?
tuareg Отправлено: 28 Октября, 2011 - 02:15:59 • Тема: Организация ЧПУ • Форум: Вопросы новичков

Ответов: 22
Просмотров: 1508
На счет PMA. Вот есть страниц 500 к примеру. Я начинаю править url страницы.
Как вы думаете есть шанс, что я исправлю так что у меня получится что 2 страницы с одинаковым URL?
И как тогда будет работать движок?
Насчет всех запросов тут напрашиваются процедуры MySQL.
Они по-моему начиная с версии MySQL 5.0 (тут не уверен) не требуют ни каких SUPER прав. Они нормально будут работать.
На счет запросов
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT * FROM c_page_url WHERE content = 'news' AND url = 'pervaya-novost'
  3.  

А откуда Вы будете знать что это news? Улыбка
Я бы сделал так
Таблицы
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE `url` (
  3.   `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT ,
  4.   `rus_title` char(100) NOT NULL DEFAULT '',# название страницы
  5.   `alias` char(50) NOT NULL DEFAULT '', #url
  6.   `title` char(255) NOT NULL DEFAULT '', #начиная с этого поля и до hide все для seo
  7.   `description` char(255) NOT NULL DEFAULT '',
  8.   `keywords` char(255) NOT NULL DEFAULT '',
  9.   `hide` enum('show','hide') NOT NULL DEFAULT 'show',
  10.   `crs` int(11) NOT NULL,
  11.   `tip` char(20) NOT NULL DEFAULT '',# тип новости, магазин и т.д
  12.   PRIMARY KEY  (`id`),
  13. ) ENGINE=MyISAM AUTO_INCREMENT=0 DEFAULT CHARSET=utf8;
  14.  
  15. CREATE TABLE IF NOT EXISTS `c_news` (
  16.   `id` int(11)  UNSIGNED NOT NULL,# Сделав поле беззнаковым мы #увеличим его значение приблизительно 2 раза
  17.   #title здесь не нужен он нужен в таблице url
  18.   `text` text NOT NULL,
  19.   `date_added` date NOT NULL,
  20.   UNIQUE KEY `id` (`id`)
  21. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
  22.  

Сделав таблицу "фиксированной" (не содержащей поля типа varchar, text, blob) мы чуть выиграем в скорости ее работы.
Поле `hide`---> наверняка будет возможность скрыть какую-то страницу от пользователей? Улыбка
Тут тоже я всегда перечисляю какие поля мне нужны в запросе. Т.е не * ,а `id`,`url` и т.д
У нас нет индексов кроме PRIMARY KEY. Пока приложение толком не готово я обычно их не ставлю.
Да и еще сразу пока не забыл лучше,если у нас не будет отрицательных числовых значений, сделать числовые поля беззнаковыми (unsigned)
Вот мы подготовились и сделали таблицы
Теперь запрос на сохранение/редактирование будет состоять из 3 этапов
1 этап:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. сохранение: SELECT COUNT(*) FROM `url` WHERE crs=CRS32('pervaya-novost') AND `alias` = 'pervaya-novost' LIMIT 1;
  3. редактирование с id=2: SELECT COUNT(*) FROM `url` WHERE crs=CRS32('pervaya-novost') AND `alias` = 'pervaya-novost' AND `id`!=2 LIMIT 1;
  4.  

Если COUNT(*)>0, т.е страница с таким url уже существует возвращаем ошибку
Если нет
2 этап:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  INSERT INTO `url`(`id`,`rus_title`,`alias`,`title`,`description`,`keywords`,`crs`,`tip`)
  3.  VALUES ('.$id*.','".$rus_title."','".$url."','".$title."','".$description."','".$keywords."',CRS32('".$url."')**,'".$tip."')
  4. ON DUPLICATE KEY UPDATE `rus_title`=VALUES(`rus_title`),`alias`=VALUES(`alias`),`title`=VALUES(`title`),`description`=VALUES(`description`),
  5. `keywords`=VALUES(`keywords`),`crs`=CRS32('".$url."'),`tip`=VALUES(`tip`);
  6.  

* если новая новость -->0, если редактируем id
** находим контрольную сумму. Если будут триггера тогда это поле вставлять не надо
*** это тип(таблица) в которой хранится контент и т.д
3 этап:
$id=>>> Если делали новую страницу находим последний сгенерированный id, редактирование id нам известен
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2.  INSERT INTO `c_news`(`id`,`text`,`date_added`)
  3.  VALUES ('.$id.','".$text."','".$data."')
  4. ON  DUPLICATE KEY UPDATE  `text`=VALUES(`text`),`date_added`=VALUES(`date_added`);
  5.  

Запросы на вывод данных
$url-->запрошенный url
$table---> `tip`
$id-->`id`
1 этап:
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `id`,`rus_title`,`title`,`description`,`keywords`, `tip` FROM url WHERE hide='show' AND crs=CRS32('".$url."') AND url =$url LIMIT 1;
  3.  

Если нет 404.html
есть ответ(можно посчитать кол-во полученных ответов 0 или 1)
2 этап
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT `text`,`date_added` FROM '.$table.' WHERE id=$id;
  3.  

P.S Сейчас еще рано ставить индексы. Любая здоровая критика приветствуется Улыбка
P.S.S Это всего лишь пример, нет проверок и экранирования, но это не та тема Улыбка
tuareg Отправлено: 27 Октября, 2011 - 16:29:28 • Тема: Нужно ли закрывать php файл • Форум: Прочее

Ответов: 9
Просмотров: 148
На счет закрывать или не закрывать читал на http://irbis-team[dot]com/ .
Идея в том, что если нет закрывающего тэга ?>, тогда если кто-нибудь что-нибудь вставит в конец файла это выведется или выполнится иначе сразу ошибка
tuareg Отправлено: 27 Октября, 2011 - 16:25:15 • Тема: Работа с файлами • Форум: Вопросы новичков

Ответов: 7
Просмотров: 279
EuGen Агромаднейшее спасибо
tuareg Отправлено: 27 Октября, 2011 - 15:34:48 • Тема: Работа с файлами • Форум: Вопросы новичков

Ответов: 7
Просмотров: 279
EuGen Нет.
Просто хочется попрактиковаться в написании поискового движка для сайта например.
Все будет храниться в одном файле
Второй файл будет использоваться как дельта-индекс
Вот и вопросы(на счет торможения) следовательно отсюда Улыбка
Логика:
Когда размер файла с дельта-индексом превышает какой-то размер тогда считывать его и основной файл и megre обоих массивов, и да огромное спасибо за LIMIT, я как-то об этом не думал.
А защита от скачивания, чтобы никто не мог скачать напрямую этот файл
P.S Я правильно понял, в Вашем примере нельзя будет получить доступ к этому файлу иначе чем скрипт PHP
tuareg Отправлено: 27 Октября, 2011 - 15:12:12 • Тема: Помогите с ajax обработчиком • Форум: JavaScript & VBScript

Ответов: 8
Просмотров: 1414
А зачем Вам это все? Если Вы можете сделать это на чистом JS, тогда делайте
tuareg Отправлено: 27 Октября, 2011 - 14:58:04 • Тема: Работа с файлами • Форум: Вопросы новичков

Ответов: 7
Просмотров: 279
EuGen пишет:
EuGen serizlize + unserialize Вам помогут

Уже используется Улыбка .
Идея в чем если размер файла > сколько-то тогда создаем второй файл, поэтому и спрашиваю.
Как узнать размер limit-а?
P.S А на счет третьего вопроса?
(Добавление)
salim пишет:
salim
А примерчик можно?
tuareg Отправлено: 27 Октября, 2011 - 14:48:48 • Тема: checkbox`ы • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 73
Код HTML выложите. Я еще раз(не обижайтесь) говорю, что когда Вы изменяете свойство checked событие click не сработает.
Можете еще попытаться сделать так
Когда Вы меняете у подчиненного checkbox-а свойство, эмулируйте клик по нему
Пример
$('#id').prop('checked',true).click()
tuareg Отправлено: 27 Октября, 2011 - 14:40:52 • Тема: Работа с файлами • Форум: Вопросы новичков

Ответов: 7
Просмотров: 279
Здравствуйте, необходимо хранить массив в файле.
Вопросы:
Какой тип(расширение) файла оптимальней использовать? и почему?
Есть ли ограничение на размер файла? (Т.е каком-то значение начинаются тормоза )
Как ограничить доступ к этому файлу только программе? (Чтобы содержимое файла нельзя было скачать через адресную строку браузера)
Спасибо заранее за ответы
tuareg Отправлено: 27 Октября, 2011 - 14:17:28 • Тема: Определить событие выбора элемента из списка клавишами вверх - вниз • Форум: JavaScript & VBScript

Ответов: 9
Просмотров: 2340
keydown() не помогает? Если нет, код HTML и JS покажите?
tuareg Отправлено: 27 Октября, 2011 - 12:30:02 • Тема: Создание профиля пользователя • Форум: Вопросы новичков

Ответов: 39
Просмотров: 2172
salim
А удачный это как?
tuareg Отправлено: 27 Октября, 2011 - 10:34:32 • Тема: Организация ЧПУ • Форум: Вопросы новичков

Ответов: 22
Просмотров: 1508
Насчет РМА--->>> триггеры
Зачем изменять что-то через PhpMyAdmin если есть админка?
Плюс если будет какая-то дополнительная логика например
создаю новую текстовую страницу заполнил все поля
если мы берем 2 таблицы
в первой--->url и.д
во второй ----> сам контент
Тогда сохранение будет выглядеть так: выполнить запрос на вставку в таблицу с url---->>>Потом узнать id последней записи в таблицу с url------> выполнить запрос в таблицу с контентом
(Тут я не указал еще необходимость на проверку уникальности URL.)
Каким образом это просто сделать через РМА я не знаю.
tuareg Отправлено: 27 Октября, 2011 - 09:20:02 • Тема: checkbox`ы • Форум: Напишите за меня, пожалуйста

Ответов: 7
Просмотров: 73
Он и не будет работать, потому, что когда при клике на главный checkbox Вы меняете у подчиненных chekbox-ов checked у них событие клик не происходит. Я уже писал выше, измените событие у подчиненных checkbox-ов на change.
Если не получается выложите чистый html я сделаю образец
tuareg Отправлено: 27 Октября, 2011 - 08:26:37 • Тема: Организация ЧПУ • Форум: Вопросы новичков

Ответов: 22
Просмотров: 1508
dropoff --->> Если, к примеру, чел захочет сменить УРЛ через PMA.
Вот я не понял??? Поподробнее объясните пожалуйста с примером.
Если делать через 2 триггера(1 первый триггер сработает после вставки, а второй после UPDATE) то как бы кто-то не изменял URL он все равно пересчитает CRS.

На счет таблицы (вот тут просто мое мнение)
Я бы сделал также, но только добавил бы поле таблица( в вашем случае если каждому типу поля content соответствет одна таблица тогда не надо), где указывал бы к какой таблице относится данный URL. И в процедуре MySQL простым запросом искал есть ли такой URL и если есть выводил id и таблица и если есть вторым запросом выводил данные. В принципе можно и без процедуры, а 2 запроса.
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT id,TABLE FROM TABLES WHERE .....
  3.  

Потом уже зная id,table сделать
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT ... FROM TABLE WHERE id_url=url
  3.  


Почему так? Очень просто если будет много информации то тогда запрос на получение будет следующим
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. SELECT id,TABLE FROM url LEFT JOIN news ON url.id=news.url LEFT JOIN t1 ON url.id=t1.url
  3. ....
  4. LEFT JOIN tn ON url.id=tn.url и т.д
  5.  

В данном случае ИМХО оптимальней сделать 2 простых запроса
tuareg Отправлено: 26 Октября, 2011 - 20:15:18 • Тема: Организация ЧПУ • Форум: Вопросы новичков

Ответов: 22
Просмотров: 1508
Суть не в том что данные будут не верны, а в том что Вы сделаете индекс по полю типа int. Он занимает гораздо меньше места

Страниц (83): В начало « ... 75 76 77 78 79 80 [81] 82 83 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB