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

Форум PHP

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

 

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

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

тема: как бы сформировать селект
 
 автор: vitroot   (22.07.2008 в 04:58)   письмо автору
 
 


<select name="sel_auction">
    <?
    $all_auction 
= @mysql_query("SELECT a.id,d.day,a.auction,a.money FROM auction a,day d WHERE a.day=d.id AND a.hide=0 ORDER BY d.id,a.auction;");
    
$all_auction_rows = @mysql_num_rows($all_auction);
    for(
$a=1$a <= $all_auction_rows$a++)
    {
        
$auc = @mysql_fetch_array($all_auction);
        echo 
'<option value="'.$auc["id"].'">'.$auc["auction"].'</option>';
    }
    
?>
</select>


в таблице day содержатся просто имена дней недели (id,day).
В таблице auction - названия аукционов и day.id, к которому они относятся. Мне надо вывести в селекте не просто список названий аукционов, но и дней недели, к которым те относятся. Причем вида:

ПОНЕДЕЛЬНИК
имя_аукциона
имя_аукциона
имя_аукциона
ВТОРНИК
имя_аукциона
имя_аукциона
имя_аукциона
имя_аукциона
СРЕДА
имя_аукциона
имя_аукциона
имя_аукциона

и т.д.

Причем, чтобы дни недели в селекте были неактивными и выделены другим цветом.

Подскажите, если не трудно!
Заранее спасибо!

   
 
 автор: sim5   (22.07.2008 в 05:06)   письмо автору
 
   для: vitroot   (22.07.2008 в 04:58)
 

<select name="">
<optgroup label="ПОНЕДЕЛЬНИК">
<option>Tetx 1</option>
<option>Tetx 2</option>
<option>Tetx 3</option>
</optgroup>
<optgroup label="ВТОРНИК">
<option>Tetx 1</option>
<option>Tetx 2</option>
<option>Tetx 3</option>
</optgroup>
.....
</select>
Элемент OPTGROUP неактивен в любом случае. Стили определите через класс стилией.

   
 
 автор: vitroot   (22.07.2008 в 05:15)   письмо автору
 
   для: sim5   (22.07.2008 в 05:06)
 

Спасибо, а как можно в одном цикле выводить и дни и аукционы?
Сделал так:


<select name="sel_auction">
    <?
    $pday 
'';
    
$all_auction = @mysql_query("SELECT a.id,d.day,a.auction,a.money FROM auction a,day d WHERE a.day=d.id AND a.hide=0 ORDER BY d.id,a.auction;");
    
$all_auction_rows = @mysql_num_rows($all_auction);
    for(
$a=1$a <= $all_auction_rows$a++)
    {
        if(
$auc["day"] != $pday)
        {
            echo 
'<optgroup label="'.$auc["day"].'">';
            
$pday=$auc["day"];
        }
        
$auc = @mysql_fetch_array($all_auction);
        echo 
'<option value="'.$auc["id"].'">'.$auc["auction"].'</option>';
    }
    
?>
</select>


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

   
 
 автор: sim5   (22.07.2008 в 05:38)   письмо автору
 
   для: vitroot   (22.07.2008 в 05:15)
 

Укажите до цикла переменную. Начинайте цикл проверкой - если эта переменная не равна текущему $auc["day"], то вывод optgroup и присвоение переменной значения $auc["day"]. По этому же условию выводите закрывающий тег optgroup (после вывода option).

   
 
 автор: vitroot   (22.07.2008 в 06:56)   письмо автору
 
   для: sim5   (22.07.2008 в 05:38)
 

до цикла переменная указана

   
 
 автор: sim5   (22.07.2008 в 10:28)   письмо автору
 
   для: vitroot   (22.07.2008 в 06:56)
 

Указана то она указана, да вот </optgroup> вы не выводите, это первое. Второе, если массив имеет записи элементов как
поенедельник, аукцион 1
поенедельник, аукцион 2
....
то все должно получиться, в противном случае не знаю, что и сказать вам.

   
Rambler's Top100
вверх

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