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

Форум MySQL

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

 

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

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

тема: вывод данных из базы в виде списка
 
 автор: lilu   (17.05.2006 в 09:48)   письмо автору
 
 

Задача такая, что есть таблица "test_table":
id - int(2)
flower - set('роза','пион','ромашка','фиалка')
color - set('белый','красный','тёмный','оранжевый')
пример заполнения таблицы:
1 пион белый
2 роза красная
3 фиалка тёмная и т.д.
надо вывести содержимое таблицы в виде таблицы:
№ наимен цвет
но чтобы поля наимен и цвет были б в виде списков, т.е. чтобы можно было выбрать другое значение цветка или его цвета и потом записать уже новое в базу.

   
 
 автор: WebTech   (17.05.2006 в 11:39)   письмо автору
 
   для: lilu   (17.05.2006 в 09:48)
 

Цветы и цвета только такие или предполагается добавления новых (или удаления ненужных)?

   
 
 автор: lilu   (18.05.2006 в 09:32)   письмо автору
 
   для: WebTech   (17.05.2006 в 11:39)
 

нет новые цветы и цвета будут добавляться через базу а не через форму пользователя, т.е. это будет довольно редко а у того, кто будет обслуживать эту программу задача только менять комбинации значений, выбирая из списков доступных значений

   
 
 автор: cheops   (17.05.2006 в 12:17)   письмо автору
 
   для: lilu   (17.05.2006 в 09:48)
 

А почему в виде выпадающего списка, а не набора флажков? Ведь под выпадающие списки обычно заводят поля типа ENUM, а не SET?

   
 
 автор: lilu   (18.05.2006 в 09:35)   письмо автору
 
   для: cheops   (17.05.2006 в 12:17)
 

про цветы и их цвета - это только пример, на самом деле тематика другая и по 10 значений, выпадающий список-это экономия места.
enum использовать-хорошо поправлюсь, не знала, но это проблемы не решает.
Я тут набросала примерный код, но криво он работает- в списках выводятся по одному значению(не первому из списка, а текущее значение в данном столбце таблицы):

 <?
   $rez 
mysql_query("SELECT * FROM test_table");
$flower=mysql_query("select distinct flower from test_table"); 
    while(
$myfl=mysql_fetch_array($flower)){echo $myfl[0]."<br>";} 

   if(
$rez)
   {  echo 
"<table border=1>\n";
       echo 
"<tr><td>№</td><td>наименование</td><td>цвет</td></tr>";
     while(
$myrow=mysql_fetch_array($rez))
     {  
?>
       <tr><td><? echo $myrow[0];?></td>
       <td> <select size='1'> <option selected><? echo $myrow[1]; ?></option><option><? echo $myfl[0]; ?></option><br> 
       </select> 
         </td>
        <td><select size='1'><option><? echo $myrow[2];?></option></select></td>
        </tr><br>
    <? }
     echo 
"</table>\n";
     }
     
?>

   
 
 автор: cheops   (18.05.2006 в 12:17)   письмо автору
 
   для: lilu   (18.05.2006 в 09:35)
 

А автоматизировать процесс формирования выпадающего списка вряд ли получится, придётся явно его писать в коде
<?php
  $rez 
mysql_query("SELECT * FROM test_table"); 
  if(!
$rez) exit(mysql_error());
  if(
mysql_num_rows($rez) > 0)
  {
    while(
$table=mysql_fetch_array($rez))
    {
<
select>
<
option value='белый' <?php if($table['flower'] =='белый') echo "selected"?>>белый</option>
<option value='красный' <?php if($table['flower'] =='красный') echo "selected"?>>красный</option>
<option value='тёмный' <?php if($table['flower'] =='тёмный') echo "selected"?>>тёмный</option>
<option value='оранжевый' <?php if($table['flower'] =='оранжевый') echo "selected"?>>оранжевый</option>
<selected><br>
<?php
    
}
  }
?>

   
 
 автор: Trianon   (18.05.2006 в 15:40)   письмо автору
 
   для: cheops   (18.05.2006 в 12:17)
 

Ну почему же... можно и автоматизировать...

<?
  
include 'config.inc.php';

  
$query "Show columns from test_table like 'flower'";
  if((
$res mysql_query($query)) == 0)
      die (
"Error in $query - ".mysql_error());
  
$type mysql_result($res0'Type');
  
$flower explode(','substr(strstr($type'('), 1, -1));
  foreach(
$flower as $key => $val)
     
$flower[$key] = stripslashes(substr($val1, -1));


  
$query "SELECT * FROM test_table";
  if((
$res mysql_query($query)) == 0)
      die (
"Error in $query - ".mysql_error());
  if(
mysql_num_rows($res) > 0)
  {
    while(
$table=mysql_fetch_array($res))
    {
        echo 
'<select>';
        foreach(
$flower as $elem)
        {
            
$sel $table['flower'] == $elem 'selected ' ' ';
            echo 
"<option value='$elem$sel >$elem</option>\r\n";
        }
        echo 
"</select>\r\n";
    }
  }
?>

   
 
 автор: lilu   (19.05.2006 в 09:32)   письмо автору
 
   для: Trianon   (18.05.2006 в 15:40)
 

КРУТО, вот то что надо, спасибочки!

   
Rambler's Top100
вверх

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