Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Подстановка опред. данных из БД в <select>, при редактировании статьи 
:(
    Опции темы
Enya
  Дата 11.11.2006, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



1. При добавлении статьи  (да и вообще чего-либо), нужно использовать несколько <select>-в.
2. Есть необходимость в редактировании статьи  (да и вообще чего-либо), так вот хочется что в полях тега <select> были уже те данные, что были выбранные из БД.

См. Картинку.

Присоединённый файл ( Кол-во скачиваний: 27 )
Присоединённый файл  template.jpg 34,62 Kb


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
check
Дата 11.11.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Примерно так
Код

<?php
 ...
 ...
$res = mysql_query("select `code`,`model` from `printer`");
?>
<select name='model'>
<?php
while($row = mysql_fetch_assoc($res))
   echo "<option value='".$row['code']."'>".$row['model']."</option>";
  
?>
</select>


Добавлено @ 19:28 
Я правильно понял вопрос?

Это сообщение отредактировал(а) check - 12.11.2006, 01:15
PM MAIL   Вверх
check
Дата 12.11.2006, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Или ты хочешь, чтобы при переходе на edit_article.php ранее установленный в add_article.php option был выбран по дефолту?
Тогда можно сделать так
Код

<select name='model'>
<?php
 ...
 ...

/*При переходе на страницу редактирования статьи выбираешь из БД
  выбранную при добавлении опцию
*/

$default_option = "HP LaserJet 100";
$res = mysql_query("select `code`,`model`
                                  from `printer` 
                                  where `model` = '".$default_option."'");
$default_code = mysql_result($res, 0, 0);
$default_model = mysql_result($res, 0, 1);
echo "<option selected
value='".$default_code."'>".$default_model."</option>";
$res = mysql_query("select `code`,`model` 
                                  from `printer` 
                                  where `model` != '".$default_option."'");

while($row = mysql_fetch_assoc($res))
   echo "<option value='".$row['code']."'>".$row['model']."</option>";
  
?>
</select>

PM MAIL   Вверх
Enya
Дата 12.11.2006, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



check, у меня для каждого объекта (статьи, товара, чего-либо). Есть около 3-4 <select>-ов
И в файле добавления они выглядят как просто теги.
Получается, мне нужно сделать отдельно табличку в БД для <select>-в.

Добавлено @ 15:01 
Код


<?php
 ...
 ...
$res = mysql_query("SELECT `category` FROM `select_table`");
?>
<select name='category'>
<?php
while($row = mysql_fetch_assoc($res))
   echo "<option value='".$row['category']."'>".$row['category']."</option>";
  
?>
</select>


И таким образом у нас получится, выпадающий список всех категорий для печатного издания.
Далее, мы просто закидываем уже в другую таблицу.

но вот при редактировании хотелось бы, что бы открыть статью и во всех выпадающих списках были те значения, которые были выбранные при добавлении.

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  templateSelectTag.jpg 22,49 Kb


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 12.11.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



В этот цикл еще добавьте сравнение каждой опции со значением данного параметра для текущей записи. Если они окажутся равны, дописывайте соотвествующему тегу <option> атрибут selected.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Enya
Дата 12.11.2006, 16:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



SelenIT, получается, что мысль со специальной табличкой для <select> - верна?!


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
check
Дата 12.11.2006, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Enya, ну смотри, вот твоя таблица с последнего рисунка.
Допустим после category в ней будет поле title.
Значения cаtegory и каких-то других полей были выбраны
в списках при добавлении статьи.
Допустим мы переходим на страницу редактирования конкретной статьи 
"Хулио Иглесиас станет папой"(первое что попалось на глаза smile).
При переходе должен выполниться такой примерно запрос 
Код

SELECT `category`, ... FROM `table` WHERE `title`='Хулио Иглесиас станет папой'

После category в запросе идут прочие поля которые будут подставляться в селекты.
Выбранную этим запросом категорию помещаем в переменную $category(это и будет $default_option из моего предыдущего поста для селекта категорий), тем же запросом выбираем остальные параметры 
а дальше создаем селекты и устанавливаем там выбранное значение. 

Не знаю, прояснил я ситуацию, или наоборот вконец запутал  smile 
PM MAIL   Вверх
Enya
Дата 12.11.2006, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



check, простите за мою женскую наглость, но вот это бы
Цитата

Выбранную этим запросом категорию помещаем в переменную $category(это и будет $default_option из моего предыдущего поста для селекта категорий), тем же запросом выбираем остальные параметры 
а дальше создаем селекты и устанавливаем там выбранное значение. 
 перевести на php+MySQL smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
check
Дата 12.11.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Цитата(Enya @  12.11.2006,  16:18 Найти цитируемый пост)
мысль со специальной табличкой для <select> - верна?! 
Да.

Цитата(Enya @  12.11.2006,  16:25 Найти цитируемый пост)
перевести на php+MySQL

Старался перевести почти дословно  smile 
Код

<?php
 ...
 ...
$sql = "SELECT `category`, `param2`, `param3` 
        FROM `articles` 
        WHERE `title`='Хулио Иглесиас станет папой'";
$res = mysql_query($sql);
while ($row = mysql_fetch_assoc($res)) {
   $category = $row['category'];
   $param2 = $row['param2'];
   $param3 = $row['param3'];
}


$res = mysql_query("select `category`, `param2`, `param3` 
                    from `select_table` 
                    where `category` != '".$category."'");

$categories = array();
$param2     = array();
$param3     = array();

while($row = mysql_fetch_assoc($res)) {
   $categories[] = "<option value='".$row['category']."'>".$row['category']."</option>";
   $param2[]     = "<option value='".$row['param2']."'>".$row['param2']."</option>";
   $param3[]     = "<option value='".$row['param3']."'>".$row['param3']."</option>";
}

echo "<select name='category'><option selected
value='".$category."'>".$category."</option>";

for($i = 0; $i < count($categories); $i++)
    echo $categories[$i];
?>
</select>



Это сообщение отредактировал(а) check - 12.11.2006, 17:04
PM MAIL   Вверх
SelenIT
Дата 12.11.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Цитата(Enya @  12.11.2006,  16:18 Найти цитируемый пост)
мысль со специальной табличкой для <select> - верна?

Абсолютно  smile 


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
check
Дата 12.11.2006, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Enya,  я код отредактировал,  в первоначальном варианте косяки были.
PM MAIL   Вверх
Enya
Дата 12.11.2006, 19:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Вот такое дело, я тут просто задумалась.
В файле add_article.php там большая форма для добавления статьи.
И в этой форме все <select>-ы будут генерироваться благодаря выборке из спец. таблички с данными для выпадающих списков.
Потом я в этих списков выбираю нужные пункты, и отправляю в таблицу для статей.
и в ячейках таблицы статей будут храниться ... исключительно значения? или переменные? или ещё что?


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
check
Дата 12.11.2006, 20:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 610
Регистрация: 3.4.2006

Репутация: 2
Всего: 23



Если ты выбрала при добывлении статьи в селекте с именем category значение "криминал", то в поле category таблицы статей  должно быть занесено это значение.
Поле category должно быть и в "спец. таблички с данными для выпадающих списков", и в таблице articles(или как ты её назвала).
В результате у тебя в таблице articles для каждой статьи будет хранится категория и прочие параметры.
PM MAIL   Вверх
Enya
Дата 13.11.2006, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



И так, что у нас есть:
1. SQL
 1.1. Два таблицы (одна для статей, вторая для значений выпадающих списков)
Код

# Хост: localhost
# База данных: ldo
# Таблица: 'test'
# 
CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `title` varchar(100) NOT NULL default '',
  `text` varchar(100) NOT NULL default '',
  `cat` varchar(100) NOT NULL default '',
  `autor` varchar(100) NOT NULL default '',
  `rank` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 
Код

# Хост: localhost
# База данных: ldo
# Таблица: 'select_table'
# 
CREATE TABLE `select_table` (
  `id_s` int(11) NOT NULL auto_increment,
  `autor` varchar(100) NOT NULL default '',
  `cat` varchar(100) NOT NULL default '',
  `rank` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id_s`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251; 

2. Скрипт который, 
 2.1. добавляет новость
 2.2. Делает 3 запроса к таблице с данными для выпадающий <select>-ов 
test_select_inc_date.php
Код

<?php    /*ïîäêëþ÷åíèå ìîäóëåé*/
        include("function.php");
        
        /* db_connect.php */
        $db_host = 'localhost';
        $db_db = 'ldo';
        $db_user = 'root';
        $db_password = '';
        
        mysql_connect($db_host,$db_user,$db_password) OR DIE("Íå ìîãó ñîçäàòü ñîåäèíåíèå ");
        mysql_select_db($db_db) OR DIE(mysql_error());
/*ôóíêöèÿ øàïêè HTML äîêóìåíòà */
htmlheader();
        if(isset($_POST['submit'])){
            $title = $_POST['title'];
            $text = $_POST['text'];
            $cat = $_POST['cat'];
            $autor = $_POST['autor'];
            $rank = $_POST['rank'];
            
            $sql="INSERT INTO `test` (`title`, `text`, `cat`, `autor`, `rank`) VALUES ('$title','$text','$cat','$autor','$rank')";        
            $result = mysql_query($sql) OR DIE(mysql_error());
            echo "<a href='test_select_view_date.php'>Back to control page</a></div>";
            
        }else{
        ?>
            <table border="1" align="center" width="95%">
            <form name="select_test" method="post" action="test_select_inc_date.php">
                <tr>
                    <td>Article title:<br><input type="text" name="title" size="25"></td>
                    <td>Article Text:<br><textarea name="text"></textarea></td>
                    <td>Select Category:<br><!-- FIRST SELECT TAG -->
                    <?php 
                        $sql_slct1 = mysql_query("SELECT `cat` FROM `select_table`");
                        echo '<select name="cat">';
                            while($row = mysql_fetch_assoc($sql_slct1))
                                echo "<option value='".$row['cat']."'>".$row['cat']."</option>";
                        echo '</select>';
                    ?>
                    </td>
                    <td>Select Autor:<br><!-- SECOND SELECT TAG -->
                    <?php 
                        $sql_slct2 = mysql_query("SELECT `autor` FROM `select_table`");
                        echo '<select name="autor">';
                            while($row = mysql_fetch_assoc($sql_slct2))
                                echo "<option value='".$row['autor']."'>".$row['autor']."</option>";
                        echo '</select>';
                    ?>
                    </td>
                    <td>
                        <td>Select Rank:<br><!-- FIRST SELECT TAG -->
                    <?php 
                        $sql_slct3 = mysql_query("SELECT `rank` FROM `select_table`");
                        echo '<select name="rank">';
                            while($row = mysql_fetch_assoc($sql_slct3))
                                echo "<option value='".$row['rank']."'>".$row['rank']."</option>";
                        echo '</select>';
                    ?>
                    </td>
                </tr>
                <tr>
                    <td colspan="6" align="center"><input type="submit" name="submit" value=" Send "></td>
                </tr>
            </form>
            </table>
            <?php
        }
/*ôóíêöèÿ çàâåðøåíèÿ HTML äîêóìåíòà */
htmlfooter();
?>

3. Cкрипт для просмотра списка статей с предоставлением ссылке на редактирование
test_select_view_date.php
Код

<?php    /*ïîäêëþ÷åíèå ìîäóëåé*/
        include("function.php");
        
        /* db_connect.php */
        $db_host = 'localhost';
        $db_db = 'ldo';
        $db_user = 'root';
        $db_password = '';
        
        mysql_connect($db_host,$db_user,$db_password) OR DIE("Íå ìîãó ñîçäàòü ñîåäèíåíèå ");
        mysql_select_db($db_db) OR DIE(mysql_error());
/*ôóíêöèÿ øàïêè HTML äîêóìåíòà */
htmlheader();
        $sql = mysql_query("SELECT * FROM `test` ORDER BY `id` ASC");
                        echo '<table border="1" align="center" width="55%">';
                            
                            while($row = mysql_fetch_assoc($sql)){
                                echo '<tr>';
                                echo "<td width='25'>".$row['id']."</td>";
                                echo "<td>".$row['title']."</td>";
                                echo "<td>".$row['text']."</td>";
                                echo "<td>".$row['cat']."</td>";
                                echo "<td>".$row['autor']."</td>";
                                echo "<td>".$row['rank']."</td>";
                                echo "<td><a href='update.php'>update</a></td>";
                                echo '</tr>';
                                }
                        echo '</table>';
/*ôóíêöèÿ çàâåðøåíèÿ HTML äîêóìåíòà */
htmlfooter();
?>

Замо редактирование пока не сделала, завтра сделаю.
но вот с постановкой в Select мне нужно будет помочь.
Всё. Всем спасибо. Спокойной ночи! smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 13.11.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Так, сегодня понедельник. Мыслей по подстановке пока нет. Буду думать завтра. Уж, извиняйте. smile  smile  smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 16.11.2006, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



ну, что ж нужно браться за подстановку в <select> smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 24.11.2006, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



Признаюсь, не могу сделать сравнение двух выборок из БД.

1. Беру значения из таблицы статей.
2. Беру значения для выпадающих списков из спец. таблички
перед тем как их выводить сравниваем то что у нас в таблице статей
с подстановкой и если значения верны то печатем первым <option>
а остальные потом.

Просто не понимаю это редактирование <select> smile  smile  smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.