Re: Help
Пробовал кавычки менять. Не катит. Данные в БД не идут.
Но запрос SELECT - это выборка данных из БД, а не вставка. Для вставки данных используется запрос INSERT.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Help
Пробовал кавычки менять. Не катит. Данные в БД не идут.
Но запрос SELECT - это выборка данных из БД, а не вставка. Для вставки данных используется запрос INSERT.
Поправил ошибку Она оказалась совсем не в том месте
Я в написании одной переменной сделал ошибку (когда уже в БД вставляется) ^_^
А вот если такая ситуация: пользователь не может найти свой город. Т.е. надо дать возможность добавить город в БД. И вот как это удобнее всего сделать? Сделать ссылку на новую страницу и там прицепить добавление города? Или еще как-то можно?
Кароче, как сделать такую штуку удобным и простым способом? Есть еще мысля,сделать через Jquery выпадающую панель http://anton.shevchuk.name/wp-demo/jque … panel.html и при нажатии на нее заблокируется и очистится список "Город", а в это панели будет графа для ввода названия города. И данные из этой графы отправятся в базу данных городов. Но тут тоже есть проблемка: че если юзеры закроют панель, не будет ли проблем с выборкой города из этой панели.
Кароче, как лучше всего дать возможность добавлять города?
Попробуйте рядом со списком городов спрятать поле ввода (style="display: none;") и в список городов добавить еще один выбор:
<option value="add" style="font-weight: bold;">Добавить...</option>
При выборе которого будет появляться текстовое поле ввода в котором можно будет ввести название нового города и отправить его на сервер через Ajax.
Как вариант - можно не отправлять новый город на сервер через Ajax, а обработать введенные данные поля при разборе POST запроса и если будет определен новый город, то сперва добавить его в БД, а затем уже все остальные данные.
Вот таким кодом я кидаю города список:
if ($type == 'city') {
$cities = $DB->select('SELECT *
FROM city
WHERE region_id = ?d
ORDER BY name', $id);
if (!empty($cities)) {
echo "out.options[out.options.length] = new Option('выберите город...','none');\n";
echo "out.options[out.options.length] = new Option('Добавить город','-1');\n"; \\ Вот этой строкой я добавляю в список строчку "Добавить город" с value=-1?
foreach ($cities as $city) {
echo "out.options[out.options.length] = new Option('".$city['name']."','".$city['city_id']."');\n";
}
}
else {
echo "out.options[out.options.length] = new Option('нет городов','none');\n";
}
}
Дальше пишу на javascript код, который смотрит value, и если value<0, то показывает строчку для ввода города.
Дальше файл, который у меня обрабатывает форму смотрит: если в выпадающем списке value =-1, то считывает название города из строчки для добавления города. Дальше, коннектится к базе данных городов. Добавляет туда новый город, под уникальным id. Потом коннектится к другой БД и впихивает туда все, включая новый город.
Так?
Потом коннектится к другой БД и впихивает туда все, включая новый город.
Так?
Совершенно верно.
А учебник по javascript не посоветуете? А то по статейкам в нете не могу разобраться
Вот например, выпадающий список называется country_id, input называется Addcity
Вот пишу функцию
<script>
function Addcity(obj)
{
var country_id = obj.country_id.value \\Присваиваю переменной country_id значение value из выпадающего списка.
if country_id=-1;
obj.Addcity.style='display: visible;'; \\Атрибуту style инпуту Addcity присваиваю display: visible;
}
</script>
Это правильно? (скорее всего нет)
Дальше, для выпадающего списка пишу:
onChange="Addcity()" \\Т.е. функция вызывается при выборе элемента из списка
А вот дальше че делать?
Добавляем идентификаторы (id).
<select id="country_id" onchange="Addcity();">
Далее так же на поле ввода:
<input type="text" id="Addcity" />
function Addcity() {
var country_id = document.getElementById("country_id");
if (country_id.value == "-1")
document.getElementById("Addcity").style.display = "inline";
}
Книги посоветую эти: http://forum.php-myadmin.ru/viewtopic.php?id=1385
Все, извиняюсь. Я тут напутал с переменными. Вместо country надо было city ^_^
А как реализуют такую штуку:
В базу данных надо добавить новый город с новым, уникальным ID, которого еще нет в БД? Есть мысль, создать отдельный файл, в нем будет храниться максимальное значение id из БД и каждый раз, когда добавляется новый город ID в файле будет увеличиться и присваиваться городу. Или есть способы по-лучше?
В базу данных надо добавить новый город с новым, уникальным ID, которого еще нет в БД?
Это один из основополагающих принципов хранения данных.
Перейдите на редактирование поля ID и установите ему целочисленный тип, например int(10) и отметьте параметр AUTO_INCREMENT; затем в структуре таблицы установите поле ID как первичный ключ.
Теперь каждая добавляемая запись будет создаваться под уникальным идентификатором в поле ID, который автоматически будет увеличиваться.
Чтобы автоматически создать новое уникальное значение в поле ID при записи, в запросе INSERT не надо упоминать поля ID, либо можно назначить ему значение NULL.
У меня просто мааааленькая проблемка. У меня ID присваиваются так:
Например, пусть регион имеет id 100000, то id городов буду иметь вид от 100000 до 100020
у следующего региона id уже 100100 и id городов от 100100 до 100158
Т.е. единственный вариант, это взять число, большее максимального значения id в БД и при каждом добавлении города увеличиться его на 1.
Я так уже сделал, создал для этого отдельный файл-счетчик. Ток че-то не работает, но завтра затестю, в чем проблема.
Например, пусть регион имеет id 100000, то id городов буду иметь вид от 100000 до 100020
Думаю для решения задачи лучше было создать отдельную таблицу регионов и отдельную городов. Затем связать эти таблицы по идентификаторам.
А теперь вопрос по phpmyadmin. Как хранить ссылки на файлы и можно ли сделать так, чтоб при нажатии на ссылку открывался этот файл?
А теперь вопрос по phpmyadmin. Как хранить ссылки на файлы и можно ли сделать так, чтоб при нажатии на ссылку открывался этот файл?
Для каждого поля можно задать преобразование. С помощью преобразования можно выводить ссылки и картинки из БД.
Выберите редактирование поля; укажите MIME тип, после чего задайте вид преобразований и при необходимости его параметры.
Так, а я вот сейчас делаю проверку формы. Юзаю Jquery и столкнулся с такой проблемой.
Есть код:
$(document).ready(function() {
$.validator.addMethod("Surname",function(value,element){
return this.optional(element) || /^[a-zA-Z0-9._-]{3,16}$/i.test(value);
},"Фамилия пользователя от 3 - 15 символов.");
// Validate signup form
$("#signup").validate({
rules: {
Surname: "required Surname",
},
});
});
</script>
Код рабочий, но для него используется jquery 1.3.0, а у меня стоит 1.4.2, поэтому, фразу о том, что фамилия должны быть длиннее он отображает нормально, но вот фразу о том, что поле не заполнено он отображает в виде непонятных символов.
Код брал тут http://dwlessons.ru/verstka/jquery-prov … html#valid
Проблему решил. Зашел в файл со скриптом validate в сообщениях стер надпись "Пожалуйста введите данные" и написал "Введите данные". Все стало работать. Я конечно не понимаю, как вообще это могло решить проблему, ибо проблема явно была с языком и кодировкой. Но проблема решилась
Пишу код для проверки формы.
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("Surname",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Фамилия должна содержать не менее 2 символов.");
$.validator.addMethod("Name1",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Имя должно содержать не менее 2 символов.");
$.validator.addMethod("Patronymic",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Отчество должно содержать не менее 2 символов.");
$.validator.addMethod("Email", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/i.test(value);
}, "Введите корректный e-mail.");
$.validator.addMethod(
"selectNone1",
function(value, element) {
if (element.value == "none")
{
return false;
}
else return true;
},
"Заполните поле."
);
$.validator.addMethod("Date", function(value, element) {
return this.optional(element) || /^[0-9]+\-[0-9]+\-[0-9]{2}$/i.test(value);
}, "Введите дату рождения.");
$.validator.addMethod(
"selectNone",
function(value, element) {
if (element.value == "none")
{
return false;
}
else return true;
},
"Заполните поле."
);
// Validate signup form
$("#signup").validate({
rules: {
Surname: "required Surname",
Name1: "required Name1",
Patronymic: "required Patronymic",
Email: "required Email",
Sex: {
selectNone1: true
},
Date: "required Date",
country: {
selectNone: true
},
}
});
});
</script>
И вот сама форма:
<b>Фамилия</b><br />
<input name="Surname" type="text" id="Surname" /><br />
<b>Имя</b><br />
<input name="Name1" type="text" id="Name1" /><br />
<b>Отчество</b><br />
<input name="Patronymic" type="text" id="Patronymic" /><br />
<b>E-mail</b><br />
<input name="Email" type="text" id='Email' /><br />
<b>Пол</b><br />
<select name="Sex" id="Sex" class="required">
<option value=""></option>
<option value="Мужской">Мужской</option>
<option value="Женский">Женский</option>
</select><br /><br />
<b>Дата рождения</b><br />
<input name="Date" id="Date" type="text" /><br />
<b>Страна</b><br />
<select name="country_id" id="country" onchange="getList('region', 'country')" style="width:300px;" />
<option value="">Выберите страну</option>
<option value="4">Австралия</option>
<option value="63">Австрия</option>
<option value="81">Азербайджан</option>
<option value="173">Ангуилья</option>
<option value="177">Аргентина</option>
<option value="245">Армения</option>
<option value="7716093">Арулько</option>
<option value="248">Беларусь</option>
<option value="401">Белиз</option>
<option value="404">Бельгия</option>
<option value="425">Бермуды</option>
<option value="428">Болгария</option>
<option value="467">Бразилия</option>
<option value="616">Великобритания</option>
<option value="924">Венгрия</option>
<option value="971">Вьетнам</option>
<option value="994">Гаити</option>
<option value="1007">Гваделупа</option>
<option value="1012">Германия</option>
<option value="1206">Голландия</option>
<option value="2567393">Гондурас</option>
<option value="277557">Гонконг</option>
<option value="1258">Греция</option>
<option value="1280">Грузия</option>
<option value="1366">Дания</option>
<option value="2577958">Доминиканская республика</option>
<option value="1380">Египет</option>
<option value="1393">Израиль</option>
<option value="1451">Индия</option>
<option value="277559">Индонезия</option>
<option value="277561">Иордания</option>
<option value="3410238">Ирак</option>
<option value="1663">Иран</option>
<option value="1696">Ирландия</option>
<option value="1707">Испания</option>
<option value="1786">Италия</option>
<option value="1894">Казахстан</option>
<option value="2163">Камерун</option>
<option value="2172">Канада</option>
<option value="582029">Карибы</option>
<option value="2297">Кипр</option>
<option value="2303">Киргызстан</option>
<option value="2374">Китай</option>
<option value="582040">Корея</option>
<option value="2430">Коста-Рика</option>
<option value="582077">Куба</option>
<option value="2443">Кувейт</option>
<option value="2448">Латвия</option>
<option value="582060">Ливан</option>
<option value="2505884">Ливан</option>
<option value="2509">Ливия</option>
<option value="2514">Литва</option>
<option value="2614">Люксембург</option>
<option value="582041">Македония</option>
<option value="277563">Малайзия</option>
<option value="582043">Мальта</option>
<option value="2617">Мексика</option>
<option value="582082">Мозамбик</option>
<option value="2788">Молдова</option>
<option value="2833">Монако</option>
<option value="2687701">Монголия</option>
<option value="582065">Морокко</option>
<option value="277551">Нидерланды</option>
<option value="2837">Новая Зеландия</option>
<option value="2880">Норвегия</option>
<option value="582051">О.А.Э.</option>
<option value="582105">Остров Мэн</option>
<option value="582044">Пакистан</option>
<option value="582046">Перу</option>
<option value="2897">Польша</option>
<option value="3141">Португалия</option>
<option value="3156">Реюньон</option>
<option value="3159">Россия</option>
<option value="277555">Румыния</option>
<option value="5647">Сальвадор</option>
<option value="277565">Сингапур</option>
<option value="582067">Сирия</option>
<option value="5666">Словакия</option>
<option value="5673">Словения</option>
<option value="5678">Суринам</option>
<option value="5681">США</option>
<option value="9575">Таджикистан</option>
<option value="277567">Тайвань</option>
<option value="582050">Тайланд</option>
<option value="582090">Тунис</option>
<option value="9638">Туркменистан</option>
<option value="277569">Туркмения</option>
<option value="9701">Туркс и Кейкос</option>
<option value="9705">Турция</option>
<option value="9782">Уганда</option>
<option value="9787">Узбекистан</option>
<option value="9908">Украина</option>
<option value="10648">Финляндия</option>
<option value="10668">Франция</option>
<option value="277553">Хорватия</option>
<option value="10874">Чехия</option>
<option value="582031">Чили</option>
<option value="10904">Швейцария</option>
<option value="10933">Швеция</option>
<option value="582064">Эквадор</option>
<option value="10968">Эстония</option>
<option value="3661568">ЮАР</option>
<option value="11002">Югославия</option>
<option value="11014">Южная Корея</option>
<option value="582106">Ямайка</option>
<option value="11060">Япония</option>
</select> <br /><br />
<b>Регион</b><br />
<div style="display: none" id="loading_region"><img alt="" src="ajax_loader.gif" />Загрузка...</div>
<select name="region_id" id="region" onchange="getList('city', 'region')" style="width:300px;"><br /><br />
</select> <br /><br />
<b>Город</b><br />
<div style="display: none" id="loading_city"><img alt="" src="ajax_loader.gif" />Загрузка...</div>
<select name="city_id" id="city" style="width:300px;" onchange="getList('school', 'city'), addCityFunc() ">
</select> <br /><br />
<input id="addCity" name="Addcity" type="text" style="display: none;" >
<b>Учебное заведение</b><br />
<div style="display: none" id="loading_school"><img alt="" src="ajax_loader.gif" />Загрузка...</div>
<select name="school_id" id="school" style="width:300px;" onChange="addSchoolFunc()"><br />
</select> <br /><br />
<input id="addSchool" name="Addschool" type="text" style="display: none;" >
<b>Адрес</b><br />
<input name="Address" type="text"> <br />
<b>Класс</b><br />
<select name="Class" id="Class" /> <br />
<OPTION value=""></OPTION>
<option value=11>11</option>
<option value=10>10</option>
<option value=9>9</option>
<option value=8>8</option>
<option value=7>7</option>
</select><br /><br />
<b>Загрузить файл</b><br />
<input name ='file1' type='file'> <br />
<b>Фамилия научного руководителя</b><br />
<input name="SSurname" type="text"> <br />
<b>Имя научного руководителя</b><br />
<input name="SName" type="text"> <br />
<b>Отчество научного руководителя</b><br />
<input name="SPatronymic" type="text"> <br />
<input type="submit" value="Отправить">
<input type="reset" value="Очистить">
</form>
</div>
</div>
</div>
</div>
</body>
</html>
Вот там вот повыше, написана формула для проверки, выбран ли пол. И возникла такая проблема, что я этим же кодом пытаюсь проверить, выбрана ли страна, но код не работает, т.е. сообщение о том, что страна не выбрана не выдается. И такая фигня со всему выпадающими списками, кроме списка с полом.
Добавьте аттрибут class="required", именно он указывает на поле, которое должно иметь значение. Зачем добавлять addMethod, я признаться не понял.
По моему это лишнее.
$.validator.addMethod(
"selectNone1",
function(value, element) {
if (element.value == "none")
{
return false;
}
else return true;
},
"Заполните поле."
);
Немного подправил код:
<script type="text/javascript">
$(document).ready(function() {
$.validator.addMethod("Surname",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Фамилия должна содержать не менее 2 символов.");
$.validator.addMethod("Name1",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Имя должно содержать не менее 2 символов.");
$.validator.addMethod("Patronymic",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Отчество должно содержать не менее 2 символов.");
$.validator.addMethod("Email", function(value, element) {
return this.optional(element) || /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/i.test(value);
}, "Введите корректный e-mail.");
$.validator.addMethod(
"selectNone1",
function(value, element) {
if (element.value == "")
{
return false;
}
else return true;
},
"Заполните поле."
);
$.validator.addMethod("Date", function(value, element) {
return this.optional(element) || /^[0-9]+\-[0-9]+\-[0-9]{2}$/i.test(value);
}, "Введите дату рождения.");
$.validator.addMethod(
"selectNone2",
function(value, element) {
if (element.value == "-2")
{
return false;
}
else return true;
},
"Заполните поле."
);
$.validator.addMethod(
"selectNone3",
function(value, element) {
if (element.value == "-1")
{
return false;
}
else return true;
},
"Заполните поле."
);
$.validator.addMethod(
"selectNone4",
function(value, element) {
if (element.value == "-1")
{
return false;
}
else
return true;
},
"Заполните поле."
);
$.validator.addMethod(
"selectNone5",
function(value, element) {
if (element.value == "-1")
{
return false;
}
else
return true;
},
"Заполните поле."
);
$.validator.addMethod(
"selectNone6",
function(value, element) {
if (element.value == "")
{
return false;
}
else return true;
},
"Заполните поле."
);
$.validator.addMethod("SSurname",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Фамилия должна содержать не менее 2 символов.");
$.validator.addMethod("SName",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Имя должна содержать не менее 2 символов.");
$.validator.addMethod("SPatronymic",function(value,element){
return this.optional(element) || /^[а-яА-Я-]{2,}$/i.test(value);
},"Отчество должна содержать не менее 2 символов.");
// Validate signup form
$("#signup").validate({
rules: {
Surname: "required Surname",
Name1: "required Name1",
Patronymic: "required Patronymic",
Email: "required Email",
Sex: {
selectNone1: true
},
Date: "required Date",
country_id: {
selectNone2: true
},
region_id: {
selectNone3: true
},
city_id: {
selectNone4: true
},
school_id: {
selectNone5: true
},
Class: {
selectNone6: true
},
SSurname: "required SSurname",
SName: "required SName",
SPatronymic: "required SPatronymic",
}
});
});
</script>
А у меня же такая штука, что при выборе в выпадающем списке "Добавить город" с value=-2, появляется input, в который надо ввести новый город. Т.е. при выборе "Добавить город" сообщения о том, что надо выбрать что-нибудь из выпадающего списка появится не должно, но должно появится сообщение о том, что надо заполнить появившийся input. Пытался сделать это через
if($("#city")[0].value<-1)
, но че-то не работает...
Попробуйте так. Хотя не понял где вы это прописали.
if($("#city").value<-1)
Если возникают проблемы с логикой программы, то используйте отладчик Firebug в Firefox, где можно поставить точку прерывания и отловить ошибку.
Парни, выручайте, вопрос: Как сменить пользователя в phpMyAdmin ?
Нового пользователя я создал, а вот как зайти под его логином и паролем не раздуплю
Как сменить пользователя в phpMyAdmin ?
При авторизации методом config, пользователь меняется в конфигурационном файле. Если необходимо разрешить доступ к phpMyAdmin под разными пользователями, то в конфигурационном файле следует сменить метод авторизации на cookie и указать в blowfish_secret любой набор букв и цифр (запоминать их не надо).
$cfg['blowfish_secret'] = 'w8j87roxjjyym';
$cfg['Servers'][$i]['auth_type'] = 'cookie';
Благодарю
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Help
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.