Модераторы: 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   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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