|
|
|
| Уважаемые профессионалы!
Подскажите пожалуйста как будет выглядеть скрипт, если у меня есть две таблицы данных, вторая таблица (называется razd) зависит от первой (называется podrazd) по ключу (ID),
ID первой таблицы будет уже известен в адресной строке d=1 или 2, исходя из этого мне нужно выбрать данные из второй таблицы в выпадающий список формы соответствующие первой таблице, т.е. d, подскажите как это сделать? | |
|
|
|
|
|
|
|
для: xpom
(22.09.2006 в 18:03)
| |
<?php
if (isset($_POST['d']) && preg_match("/^[\d]+$/", $_POST['d']))
{
$query = "SELECT DISTINCT(нужное поле)
FROM razd
WHERE id = ' ".$_POST['d']." ' ";
$result = mysql_query($query);
If ($result && mysql_num_rows($result) > 0)
{
$content = "<select name=\"var_2\">\n";
$content .= "<option value=\"0\">Не имеет значения</option>\n";
while ($list = mysql_fetch_array($result))
{
$name = $list[0];
$content .= "<option value=\"".$name."\">".$name."</option>\n";
}
$content .= "</select>\n";
}
else $content = "Ошибка БД";
}
else $content = "Неверный формат запроса";
echo $content;
?>
|
| |
|
|
|
|
|
|
|
для: name
(22.09.2006 в 19:23)
| | Какой код можно добавить, чтобы сделать текстовое поле формы, для ввода новых данных первой таблицы, если данные которые имеются в таблице один, т. е. d=1 или 2 не устраивають пользователя и он хочит добавить свои данные, это наверное нужно во временной таблице ( т.е. таблица от куда будет брать администратор данные и проверять их) добавить два поля, соответственно таблицы первой и второй, подскажите как это можно сделать, может другим вариантом? | |
|
|
|
|
|
|
|
для: xpom
(22.09.2006 в 21:08)
| | Какая задача перед вами стоит?
Что значит: "если данные которые имеются в таблице один, т. е. d=1 или 2 не устраивають пользователя и он хочит добавить свои данные"? | |
|
|
|
|
|
|
|
для: name
(22.09.2006 в 22:41)
| | Передо мной стоит задача сделать администратирование сайта (что-бы администратор заходил на сайт и проверял данные присланные пользователями на добавления, а потом добавлял их). Например есть сайт, в нем имеется Раздел1 (это первая таблица Б.Д.) (их два на сайте) (вот что не получается:при необходимости если пользователь захочит добавить данные (добавитьновый Раздел)относящиеся к разделу не существующего на сайте), в этом разделе есть подраздел Раздел1.1 (вторая таблица Б.Д.)(их много на сайте 1.1 1.2 1.3 и т.д.) и сами данные которые хранятся в таблице 3 (называется Dan) и 4-я таблица (Vremdan), она такая же как и 3-я где хранятся данные еще не проверенные администратором. Таблицы дынных связаны последовательно ключами. Вот как сделать, что бы пользователь добавляя данные в форму предоставляющую ему для добавления данных вводил новый Раздел в текстовое поле, выбирал из выпадающего списка Раздел 1.1 заплнив остальные данные отправлял в таблицу временных данных, но где там можно хранить новый Раздел1 и Раздел 1.1, ведь там поля только для самих данных что в таблице 3? | |
|
|
|
|
|
|
|
для: xpom
(23.09.2006 в 14:50)
| | Я не пойму, для чего такие сложности.
Если администратор будет проверять данные, введенные пользователями, для чего их изначально заносить в БД? Можно отсылать администратору на Эл. почту, а он будет добавлять данные сам - как вариант.
Ну а вообще, зачем три таблицы.
1. Можно сделать одну с разделами, а другую с подразделами и данными, относящимися к ним
(для упрощения структуры).
2. Почему нельзя добавить в таблицу Vremdan поля для разделов и подразделов?
>Таблицы дынных связаны последовательно ключами.
связаны так:
1)
razdel
|
podrazdel
|
dan
или:
2)
razdel
|
podrazdel
/ \
dan vremdan
Если вторым способом, для чего тогда вообще нужна таблица vremdan?
P. S. может я что-то не понял... Попробуйте конкретизировать вопрос. | |
|
|
|
|
|
|
|
для: name
(23.09.2006 в 18:39)
| | сначала надо все таблицы с их полями и связями нарисовать на бумаге, а потом уже
создавать. на самом деле - много лишнего. если нужного раздела нет, надо предусмотреть
его ввод. если не боитесь, что вам юзеры намусорят в базе, насоздают похожих разделов,
чисти потом после них... | |
|
|
|
|
|
|
|
для: name
(23.09.2006 в 18:39)
| | >Если администратор будет проверять данные, введенные пользователями, для чего их изначально заносить в БД? Можно отсылать администратору на Эл. почту, а он будет добавлять данные сам - как вариант.
В таком случае упращается администратирование (администратор только просмотрит данные и парой кликов поместить данные на сайт, т.е. данные переместятся из таблицы vremdan в таблицу dan!
>Ну а вообще, зачем три таблицы.
1. Можно сделать одну с разделами, а другую с подразделами и данными, относящимися к ним
(для упрощения структуры).
Я не знаю получится ли в таком случае сделать что бы пользователь доберался до данных поочерёдно выбирая Раздел и Подраздел?
>2. Почему нельзя добавить в таблицу Vremdan поля для разделов и подразделов?
Вот над этим думаю, только не догадываюсь как будет выглядеть код запроса к таблице со странице администратора? | |
|
|
|
|
|
|
|
для: xpom
(23.09.2006 в 21:33)
| | >В таком случае упращается администратирование (администратор только просмотрит данные и парой кликов поместить данные на сайт, т.е. данные переместятся из таблицы vremdan в таблицу dan!
Нет, в данном варианте я предлагаю вообще обойтись без vremdan, т. е. после проверки, вручную помещать данные в dan. Если этот вариант не подходит можно поступить след. образом: добавить в dan три поля - razdel, podrazdel (типа VARCHAR) и correct (тип ENUM '0','1'). Если пользователь добавляет данные, то заносим их в соотв. поля - раздел в поле razdel, подраздел в podrazdel и в поле correct - 0. Ноль будет означать, что данные еще не проверены админом и их нельзя выводить. Но все равно, при добавлении данных в БД их требуется проверять на допустимые символы.
>Я не знаю получится ли в таком случае сделать что бы пользователь доберался до данных поочерёдно выбирая Раздел и Подраздел?
Получится, я приводил уже пример.
>Вот над этим думаю, только не догадываюсь как будет выглядеть код запроса к таблице со странице администратора?
Выбирать все данные из таблицы podrazdel, где поле correct = '0' | |
|
|
|
|
|
|
|
для: name
(23.09.2006 в 22:17)
| | >добавить в dan три поля - razdel, podrazdel (типа VARCHAR) и correct (тип ENUM '0','1'). Если пользователь добавляет данные, то заносим их в соотв. поля - раздел в поле razdel, подраздел в podrazdel и в поле correct - 0. Ноль будет означать, что данные еще не проверены админом и их нельзя выводить. Но все равно, при добавлении данных в БД их требуется проверять на допустимые символы.
Как мы сможем удалить после проверки данные отправленные пользователем в таблицу dan? Я так понимаю мы выберим данные с полем correct - 0, после чего проверим (исправим) и те что были, старые данные, нужно удалить а новые со значением correct - 1 поместить?
А помещать вручную это сложно, если будет большое колличество? Это через E-mail?
А чем плох вариант когда мы помещаем не проверенные данные в таблицу vremdan, после проверки переносим в dan, а из vremdan удаляем? | |
|
|
|
|
|
|
|
для: xpom
(24.09.2006 в 11:55)
| | >Как мы сможем удалить после проверки данные отправленные пользователем в таблицу >dan? Я так понимаю мы выберим данные с полем correct - 0, после чего проверим >(исправим) и те что были, старые данные, нужно удалить а новые со значением correct - 1 >поместить?
Нам не придется удалять данные, после проверки, UPDATE-им поле correct с 0 на 1, а для пользователей, на сайте выводим все данные, где correct = 1.
>А помещать вручную это сложно, если будет большое количество? Это через E-mail?
Я думаю, если реализовать вариант с полем correct, то вариант с отправкой на email - лишнее.
>А чем плох вариант, когда мы помещаем не проверенные данные в таблицу vremdan, после >проверки переносим в dan, а из vremdan удаляем?
Много лишних действий, это то же самое, что переносить из эл. письма в БД - руками (т. е. копировать данные из письма, вставлять в БД, редактировать (если нужно) и затем добавлять) - но это на мой взгляд. | |
|
|
|
|
|
|
|
для: name
(24.09.2006 в 13:07)
| | мне ТОЖЕ было нужно как то выводить помимо оcновного селекта еще альтернативный инпут .
Потому как нужно было выводить города которые уже есть из базы и те которые я например не нашел - а пользователь в этом городе живет и хочет занести свой город так как его нет в выпадающем списке ...
Что то нашел помню на JS...
В конце концов плюнул (меня об этом никто не просил ) и оставил простой инпут // | |
|
|
|
|
|
|
|
для: oppo
(24.09.2006 в 16:44)
| | >В конце концов плюнул (меня об этом никто не просил ) и оставил простой инпут //
А как тот инпут работал с Б.Д.? | |
|
|
|
|
|
|
|
для: name
(24.09.2006 в 13:07)
| | >Нам не придется удалять данные, после проверки, UPDATE-им поле correct с 0 на 1, а для пользователей, на сайте выводим все данные, где correct = 1.
А если нам придется редактировать данные присланные пользователем, тогда нам нужно будет (каким-то образом?) обновлять и другие поля таблицы?
>Много лишних действий
Но эти действия будет выполнять скрипт, а админ. только кликать далее (если получится?)? | |
|
|
|
|
|
|
|
для: xpom
(24.09.2006 в 18:56)
| | >А если нам придется редактировать данные присланные пользователем, тогда нам нужно >будет (каким-то образом?) обновлять и другие поля таблицы?
В смысле обновлять? | |
|
|
|
|
|
|
|
для: name
(24.09.2006 в 19:40)
| | Ну если пользователь ввел какие-то данные не правильно, нам нужно будет их исправить, а потом только разместить на сайт? | |
|
|
|