Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Август 22, 2017, 16:10:41


Войти


Страниц: [1] 2
  Печать  
Автор Тема: Вопросы по MySQL  (Прочитано 18684 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« : Март 13, 2009, 02:00:27 »

Подскажите. Есть файл с таблицами, в нём идут основные таблицы: GUESTBOOK, FORUM, DOWNLOADFILES и др. В таблицу GUESTBOOK вносятся id, id_user, time, date, soob, otvet, brow, ip. Внизу, под ней идут: PRIMARY KEY(id) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7; объясните, почему auto_increment равен именно 7 и почему 2 раза написан? Как вообще определять чему он должен быть равен? В этом же файле есть таблица онлайн юзеров, в неё всего 3 данных, а auto_increment равен 17! Зачем так? Есть даже где он равен 40 и 99. На сколько я знаю, это означает сколько данных прикрепляется автоматически к id, тогда зачем и почему такие цифры???
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #1 : Март 13, 2009, 02:38:30 »

auto_increment отвечает за автоматическое увеличение числового значения поля в таблице на единицу. Считайте, что это обычный счётчик. И в данном случае ваши значения указывают не более, чем то число, с какого следует продолжить считать количество записей в таблице MySQL. Однако, стоит оговориться, что это значения показывает не КОЛИЧЕСТВО записей в таблице, а то, сколько всего этих записей было в неё когда-либо занесено. То есть если вы добавите в таблицу две записи, а потом одну из них удалите, то счётчик своё значение не уменьшит, а продолжит нумерацию последующих записей учитывая уже удалённые. Надеюсь, объяснил понятно.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #2 : Март 13, 2009, 02:40:30 »

И ещё вопрос, как правильнее написать проверку на данные при обращении к мускулу? Написал функции, которые проверяют $name $password и $id таким способом: function scanname()
{
$name= preg_replace("/[A-Za-z0-9]|insert|delete|char|updade/","",$name);
echo "$name";
}
Также с паролем и айди. Будет такая функция фильтровать запросы введённые не только в полях ввода на  сайте, но и в строке браузера? Правильно ли всё в ней написанно или есть ошибка?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #3 : Март 13, 2009, 02:48:18 »

auto_increment отвечает за автоматическое увеличение числового значения поля в таблице на единицу. Считайте, что это обычный счётчик. И в данном случае ваши значения указывают не более, чем то число, с какого следует продолжить считать количество записей в таблице MySQL. Однако, стоит оговориться, что это значения показывает не КОЛИЧЕСТВО записей в таблице, а то, сколько всего этих записей было в неё когда-либо занесено. То есть если вы добавите в таблицу две записи, а потом одну из них удалите, то счётчик своё значение не уменьшит, а продолжит нумерацию последующих записей учитывая уже удалённые. Надеюсь, объяснил понятно.
Вообще- то не очень понятно... После айди и так прописан auto_increment, который работает как счётчик, тоесть увеличивает на единицу следующие записи в гостевой... А к чему AUTO_INCREMENT=7 прописан дважды внизу? после этого идёт запрос к мускулу для создания таблицы гостевой книги.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #4 : Март 13, 2009, 02:56:35 »

Я вам объяснил то, как это должно работать. Что у вас там в дампе БД (если я правильно понял, то вы о нём речь и толкаете) - это уже не ко мне. Улыбающийся
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #5 : Март 13, 2009, 03:02:07 »

Я вам объяснил то, как это должно работать. Что у вас там в дампе БД (если я правильно понял, то вы о нём речь и толкаете) - это уже не ко мне. Улыбающийся
Спс хоть за это. Как работать должно, в принципе я догадываюсь, только ХЗ зачем подобные цифры внизу и почему именно 7 равен.)))) Ну лан, 7- это ещё не много... но 99 за каким хитрым ходом прописали? Если от ваших слов отталкиваться, то счет с 99 продолжаться чтоли должен?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #6 : Март 13, 2009, 03:13:20 »

просветлённый, вернись! мы ещё не договорили...))) Мне же скучно тут одному.;-) Ну подскажите кто-нибудь, для чего этот авто инкремент внизу прописывают и как опеделить чему он равен должен быть?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #7 : Март 13, 2009, 03:18:56 »

Ну подскажите кто-нибудь, для чего этот авто инкремент внизу прописывают и как опеделить чему он равен должен быть?

Вам абсолютно НЕ НАДО определять, чему он должен быть равен. Если для поля таблицы включается параметр автоматического увеличения счётчика, то вам о его значении не надо беспокоиться. MySQL сам за его значением проследит.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #8 : Март 13, 2009, 03:27:10 »

А вообще, auto_increment может в таблице быть задан только для одного поля. Да ещё и для такого, которое обязательно является первичным ключом. Поэтому, скорее всего, второй инкремент - это просто какая-то ошибка. MySQL не создаст таблицу, если в ней два инкрементных поля.
« Последнее редактирование: Март 13, 2009, 03:31:00 от Константин Абрамов » Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #9 : Март 13, 2009, 03:30:57 »

Вам абсолютно НЕ НАДО определять, чему он должен быть равен. Если для поля таблицы включается параметр автоматического увеличения счётчика, то вам о его значении не надо беспокоиться. MySQL сам за его значением проследит.
Ооо.... ты вернулся! Аллелуя!))) Не, ну мне ж интересно, почему и зачем добрый создатель халявного скрипта под некоторыми таблицами внизу прописал этот авто инкремент и равен он разным суммам, от 7-ми до 99-ти, если он уже и так прописан в каждой таблице после айди....Непонимающий Пы. сы. К автору скрипта не могу обратиться, он оглохнет, если узнает что скрипт распространяется бесплатно! Посиди ещё тут со мной, а? Вместе подождём ещё просветлённых, а то мне скууучно одному! 
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #10 : Март 13, 2009, 03:34:32 »

Едва ли автор скрипта занимался ручным созданием дампа БД. Скорее всего, это дело рук какой-либо версии phpMyAdmin. А различные циферки можно вполне просто объяснить. В процессе отладки скрипта автор добавлял в БД новые данные. Счётчик тем временем увеличивался. А когда работа над скриптиком закончилась, данные были из таблиц удалены. Но счётчик-то своё значение не обнулил. Да и не нужно это, собственно. Не берите в голову. Просто удалите второй инкремент.

P.S. Сидеть я предпочитаю не на форуме, а в Аське.
« Последнее редактирование: Март 13, 2009, 03:38:21 от Константин Абрамов » Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #11 : Март 13, 2009, 03:39:28 »

А вообще, auto_increment может в таблице быть задан только для одного поля. Да ещё и для такого, которое обязательно является первичным ключом. Поэтому, скорее всего, второй инкремент - это просто какая-то ошибка. MySQL не создаст таблицу, если в ней два инкрементных поля.

На что намекаешь? хочешь сказать что сприпт, который 15 у.е. стоит написан с ошибками??? Там одно значение с авто инкрементом. Это айди. А под некоторыми таблицами ещё прописан авто инкремент который равен разным суммам... И о чудо... ТАБЛИЦЫ РАБОТАЮТ! но вопрос не закрыт! Как определять чему должен быть равен-то? Именно внизу прописанно, под некоторыми таблицами...
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #12 : Март 13, 2009, 03:42:25 »

Читайте мои предыдущие сообщения. Про инкремент я уже написал вполне понятно.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
swer
Просветлённый
****

Карма: 14
Сообщений: 460


Просмотр профиля WWW
« Ответ #13 : Март 13, 2009, 03:45:09 »

$name= preg_replace("/[A-Za-z0-9]|insert|delete|char|updade/","",$name);

этим вы удалите лишь иньекции насколько я понял,а есть так же и ява и хсс,так что фильтруй и на них ,htmlspecialchars к прим.....
Записан

Homo homini lupus est!(Человек человеку волк)
Фильмы DivX->Закачаешся>
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #14 : Март 13, 2009, 03:46:37 »

Едва ли автор скрипта занимался ручным созданием дампа БД. Скорее всего, это дело рук какой-либо версии phpMyAdmin. А различные циферки можно вполне просто объяснить. В процессе отладки скрипта автор добавлял в БД новые данные. Счётчик тем временем увеличивался. А когда работа над скриптиком закончилась, данные были из таблиц удалены. Но счётчик-то своё значение не обнулил. Да и не нужно это, собственно. Не берите в голову. Просто удалите второй инкремент.

P.S. Сидеть я предпочитаю не на форуме, а в Аське.
Хм.... Ну извините, до аськи долго добираться! Я с qtek s200 тут сижу (Эт коммуникатор, если чё)... и так в 3-х окнах мини оперы двигаюсь...не до аськи пока. Ну посиди ещё, а?))) Вместе подождём блондинчика с огнём на фоне. Он обычно вроде внятные ответы даёт и ооочень подробные. Хошь познакомлю? Маэстро дразнилка его. Пы. сы. Боюсь удалять чтото, а вдруг работать перестанет??? Сейчас же работают таблицы...
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #15 : Март 13, 2009, 03:46:49 »

Едва ли автор скрипта занимался ручным созданием дампа БД. Скорее всего, это дело рук какой-либо версии phpMyAdmin. А различные циферки можно вполне просто объяснить. В процессе отладки скрипта автор добавлял в БД новые данные. Счётчик тем временем увеличивался. А когда работа над скриптиком закончилась, данные были из таблиц удалены. Но счётчик-то своё значение не обнулил. Да и не нужно это, собственно. Не берите в голову. Просто удалите второй инкремент.

P.S. Сидеть я предпочитаю не на форуме, а в Аське.
Хм.... Ну извините, до аськи долго добираться! Я с qtek s200 тут сижу (Эт коммуникатор, если чё)... и так в 3-х окнах мини оперы двигаюсь...не до аськи пока. Ну посиди ещё, а?))) Вместе подождём блондинчика с огнём на фоне. Он обычно вроде внятные ответы даёт и ооочень подробные. Хошь познакомлю? Маэстро дразнилка его. Пы. сы. Боюсь удалять чтото, а вдруг работать перестанет??? Сейчас же работают таблицы...
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #16 : Март 13, 2009, 03:48:07 »

Боюсь удалять чтото, а вдруг работать перестанет??? Сейчас же работают таблицы...

Волков бояться - в лес не ходить.
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
swer
Просветлённый
****

Карма: 14
Сообщений: 460


Просмотр профиля WWW
« Ответ #17 : Март 13, 2009, 03:51:54 »

А под некоторыми таблицами ещё прописан авто инкремент который равен разным суммам

названия таблиц в студию и что в них(какая инфа)
Записан

Homo homini lupus est!(Человек человеку волк)
Фильмы DivX->Закачаешся>
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #18 : Март 13, 2009, 03:52:41 »

$name= preg_replace("/[A-Za-z0-9]|insert|delete|char|updade/","",$name);

этим вы удалите лишь иньекции насколько я понял,а есть так же и ява и хсс,так что фильтруй и на них ,htmlspecialchars к прим.....
Эээ...так я и хочу на инъекции фильтровать запрос к мускулу... кроме этой фильтации ещё и stripslashes и if (eregi ("[a-z0-9]",$name)) проверяю... я имел ввиду, правильно проверка написана, без ошибок?
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
swer
Просветлённый
****

Карма: 14
Сообщений: 460


Просмотр профиля WWW
« Ответ #19 : Март 13, 2009, 03:53:44 »

Эээ...так я и хочу на инъекции фильтровать запрос к мускулу... кроме этой фильтации ещё и stripslashes и if (eregi ("[a-z0-9]",$name)) проверяю... я имел ввиду, правильно проверка написана, без ошибок?

Я обычно др путями работаю,так что не могу точно сказать.
Записан

Homo homini lupus est!(Человек человеку волк)
Фильмы DivX->Закачаешся>
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #20 : Март 13, 2009, 03:55:29 »

А под некоторыми таблицами ещё прописан авто инкремент который равен разным суммам

названия таблиц в студию и что в них(какая инфа)
Эээ...тада стой и не уходи. Ща перепишу сюда из блокнота данные таблиц.
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #21 : Март 13, 2009, 03:58:35 »

Волков бояться - в лес не ходить.
Ты тоже тут побудь. Ща, я вождю политариата напишу тут таблицы и продолжим беседу о инкрементах.)))
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Константин Абрамов
Просветлённый
****

Карма: 28
Сообщений: 876

Нужен сайт? Нет проблем!


Просмотр профиля WWW
« Ответ #22 : Март 13, 2009, 04:02:09 »

Ты тоже тут побудь. Ща, я вождю политариата напишу тут таблицы и продолжим беседу о инкрементах.)))

Не, мне спать пора. Улыбающийся Всем спасибо, все свободны. Улыбающийся
Записан

ШкольнЕГИ, вам за книжки, а не ко мне в ICQ со своими движковыми проблемами. Бесплатно ни на кого не работаю. Учитесь уважать чужое время и труд!
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #23 : Март 13, 2009, 04:12:43 »

$query='GREATE TABLE `'.prefiks.'guestbook `(`id` int(10) NOT NULL auto_increment, `id_user` int(20) NOT NULL default 0, `date` text NOT NULL, `time` text NOT NULL, `dateunix` int(30) NOT NULL default 0, `soob` text NOT NULL, `otvet` text NOT NULL, `ip` text NOT NULL, `brow` NOT NULL, PRIMARY KEY(id)) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=cp1251 AUTO_INCREMENT=7;';
mysql_query($query);
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Convict
Новичёк
*

Карма: 0
Сообщений: 39


convict


Просмотр профиля
« Ответ #24 : Март 13, 2009, 04:15:29 »

еще есть таблицы USER, FORUM и др. и под некоторыми есть этот авто инкремент и равен он разным суммам...
Записан

Говорите - говорите, я всегда зеваю, когда мне интересно.
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.112 секунд. Запросов: 17.