Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных в выпадающий список из базы данных?
 
 автор: xpom   (22.09.2006 в 18:03)   письмо автору
 
 

Уважаемые профессионалы!
Подскажите пожалуйста как будет выглядеть скрипт, если у меня есть две таблицы данных, вторая таблица (называется razd) зависит от первой (называется podrazd) по ключу (ID),
ID первой таблицы будет уже известен в адресной строке d=1 или 2, исходя из этого мне нужно выбрать данные из второй таблицы в выпадающий список формы соответствующие первой таблице, т.е. d, подскажите как это сделать?

   
 
 автор: name   (22.09.2006 в 19:23)   письмо автору
 
   для: 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;

?>

   
 
 автор: xpom   (22.09.2006 в 21:08)   письмо автору
 
   для: name   (22.09.2006 в 19:23)
 

Какой код можно добавить, чтобы сделать текстовое поле формы, для ввода новых данных первой таблицы, если данные которые имеются в таблице один, т. е. d=1 или 2 не устраивають пользователя и он хочит добавить свои данные, это наверное нужно во временной таблице ( т.е. таблица от куда будет брать администратор данные и проверять их) добавить два поля, соответственно таблицы первой и второй, подскажите как это можно сделать, может другим вариантом?

   
 
 автор: name   (22.09.2006 в 22:41)   письмо автору
 
   для: xpom   (22.09.2006 в 21:08)
 

Какая задача перед вами стоит?
Что значит: "если данные которые имеются в таблице один, т. е. d=1 или 2 не устраивають пользователя и он хочит добавить свои данные"?

   
 
 автор: xpom   (23.09.2006 в 14:50)   письмо автору
 
   для: 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?

   
 
 автор: name   (23.09.2006 в 18:39)   письмо автору
 
   для: xpom   (23.09.2006 в 14:50)
 

Я не пойму, для чего такие сложности.
Если администратор будет проверять данные, введенные пользователями, для чего их изначально заносить в БД? Можно отсылать администратору на Эл. почту, а он будет добавлять данные сам - как вариант.

Ну а вообще, зачем три таблицы.
1. Можно сделать одну с разделами, а другую с подразделами и данными, относящимися к ним
(для упрощения структуры).
2. Почему нельзя добавить в таблицу Vremdan поля для разделов и подразделов?

>Таблицы дынных связаны последовательно ключами.
связаны так:
1)
razdel
|
podrazdel
|
dan

или:
2)
razdel
|
podrazdel
/ \
dan vremdan

Если вторым способом, для чего тогда вообще нужна таблица vremdan?

P. S. может я что-то не понял... Попробуйте конкретизировать вопрос.

   
 
 автор: elenaki   (23.09.2006 в 19:44)   письмо автору
 
   для: name   (23.09.2006 в 18:39)
 

сначала надо все таблицы с их полями и связями нарисовать на бумаге, а потом уже
создавать. на самом деле - много лишнего. если нужного раздела нет, надо предусмотреть
его ввод. если не боитесь, что вам юзеры намусорят в базе, насоздают похожих разделов,
чисти потом после них...

   
 
 автор: xpom   (23.09.2006 в 21:33)   письмо автору
 
   для: name   (23.09.2006 в 18:39)
 

>Если администратор будет проверять данные, введенные пользователями, для чего их изначально заносить в БД? Можно отсылать администратору на Эл. почту, а он будет добавлять данные сам - как вариант.
В таком случае упращается администратирование (администратор только просмотрит данные и парой кликов поместить данные на сайт, т.е. данные переместятся из таблицы vremdan в таблицу dan!
>Ну а вообще, зачем три таблицы.
1. Можно сделать одну с разделами, а другую с подразделами и данными, относящимися к ним
(для упрощения структуры).

Я не знаю получится ли в таком случае сделать что бы пользователь доберался до данных поочерёдно выбирая Раздел и Подраздел?

>2. Почему нельзя добавить в таблицу Vremdan поля для разделов и подразделов?

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

   
 
 автор: name   (23.09.2006 в 22:17)   письмо автору
 
   для: 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'

   
 
 автор: xpom   (24.09.2006 в 11:55)   письмо автору
 
   для: 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 удаляем?

   
 
 автор: name   (24.09.2006 в 13:07)   письмо автору
 
   для: xpom   (24.09.2006 в 11:55)
 

>Как мы сможем удалить после проверки данные отправленные пользователем в таблицу >dan? Я так понимаю мы выберим данные с полем correct - 0, после чего проверим >(исправим) и те что были, старые данные, нужно удалить а новые со значением correct - 1 >поместить?

Нам не придется удалять данные, после проверки, UPDATE-им поле correct с 0 на 1, а для пользователей, на сайте выводим все данные, где correct = 1.

>А помещать вручную это сложно, если будет большое количество? Это через E-mail?

Я думаю, если реализовать вариант с полем correct, то вариант с отправкой на email - лишнее.

>А чем плох вариант, когда мы помещаем не проверенные данные в таблицу vremdan, после >проверки переносим в dan, а из vremdan удаляем?

Много лишних действий, это то же самое, что переносить из эл. письма в БД - руками (т. е. копировать данные из письма, вставлять в БД, редактировать (если нужно) и затем добавлять) - но это на мой взгляд.

   
 
 автор: oppo   (24.09.2006 в 16:44)   письмо автору
 
   для: name   (24.09.2006 в 13:07)
 

мне ТОЖЕ было нужно как то выводить помимо оcновного селекта еще альтернативный инпут .
Потому как нужно было выводить города которые уже есть из базы и те которые я например не нашел - а пользователь в этом городе живет и хочет занести свой город так как его нет в выпадающем списке ...
Что то нашел помню на JS...
В конце концов плюнул (меня об этом никто не просил ) и оставил простой инпут //

   
 
 автор: xpom   (24.09.2006 в 19:03)   письмо автору
 
   для: oppo   (24.09.2006 в 16:44)
 

>В конце концов плюнул (меня об этом никто не просил ) и оставил простой инпут //

А как тот инпут работал с Б.Д.?

   
 
 автор: xpom   (24.09.2006 в 18:56)   письмо автору
 
   для: name   (24.09.2006 в 13:07)
 

>Нам не придется удалять данные, после проверки, UPDATE-им поле correct с 0 на 1, а для пользователей, на сайте выводим все данные, где correct = 1.

А если нам придется редактировать данные присланные пользователем, тогда нам нужно будет (каким-то образом?) обновлять и другие поля таблицы?

>Много лишних действий
Но эти действия будет выполнять скрипт, а админ. только кликать далее (если получится?)?

   
 
 автор: name   (24.09.2006 в 19:40)   письмо автору
 
   для: xpom   (24.09.2006 в 18:56)
 

>А если нам придется редактировать данные присланные пользователем, тогда нам нужно >будет (каким-то образом?) обновлять и другие поля таблицы?

В смысле обновлять?

   
 
 автор: xpom   (24.09.2006 в 20:11)   письмо автору
 
   для: name   (24.09.2006 в 19:40)
 

Ну если пользователь ввел какие-то данные не правильно, нам нужно будет их исправить, а потом только разместить на сайт?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования