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

Форум MySQL

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

 

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

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

тема: <select> + цикл
 
 автор: kid_a   (09.11.2007 в 08:07)   письмо автору
 
 

верно отображается только 1ый <select>.
остальные - без значений (только []).
как исправить?

$query=mssql_query("select name.id_name, name.name, name.id_production, production.production, production.id_production from name, production where name.id_production=production.id_production"); 

for ($j=1; $j <=10; $j++)
    {
    $num_rows = mssql_num_rows($query);
    echo '<select name=day'.$j.'size=1>';
    

    for ($i=1; $i <=$num_rows; $i++)


    {

        $res=mssql_fetch_assoc($query);//  
    
    
    echo "<option value=".$res['id_name'].">"."[".$res['production']."]"." ".$res['name']."</option>";
     

    }

    
echo '</select>';
}

   
 
 автор: kasmanaft   (09.11.2007 в 08:15)   письмо автору
 
   для: kid_a   (09.11.2007 в 08:07)
 

Попробуйте в начале внешнего цикла с помощью mssql_data_seek() передвигать "указатель" на нулевой ряд ответа.

   
 
 автор: kid_a   (09.11.2007 в 08:34)   письмо автору
 
   для: kasmanaft   (09.11.2007 в 08:15)
 

Warning: Bad row offset.
покажите, если не трудно.

   
 
 автор: kasmanaft   (09.11.2007 в 08:48)   письмо автору
 
   для: kid_a   (09.11.2007 в 08:34)
 

Хм.. попробуйте на первый ряд передвигать. Странно...

Если не получится, покажите как делаете...

   
 
 автор: kid_a   (09.11.2007 в 08:57)   письмо автору
 
   для: kasmanaft   (09.11.2007 в 08:48)
 


$num_rows = mssql_num_rows($query);
    mssql_data_seek($query, $num_rows);
    


и еще пробовала после

$res=mssql_fetch_assoc($query);

   
 
 автор: kasmanaft   (09.11.2007 в 09:11)   письмо автору
 
   для: kid_a   (09.11.2007 в 08:57)
 

mssql_data_seek($query, $num_rows); - на нулевой же надо, а не $num_rows! :)

   
 
 автор: KPETuH   (09.11.2007 в 08:52)   письмо автору
 
   для: kid_a   (09.11.2007 в 08:07)
 

А если использовать такую конструкцию?
while($res=mssql_fetch_assoc($query))   
{
echo "<option value=".$res['id_name'].">"."[".$res['production']."]"." ".$res['name']."</option>"; 
}

   
 
 автор: kid_a   (09.11.2007 в 08:59)   письмо автору
 
   для: KPETuH   (09.11.2007 в 08:52)
 

а так появилось 10 selectoв.
все пустые, кроме1, даже [] нет

   
 
 автор: KPETuH   (09.11.2007 в 09:35)   письмо автору
 
   для: kid_a   (09.11.2007 в 08:59)
 

попробуйте использовать

mysql_fetch_row();

   
 
 автор: kid_a   (09.11.2007 в 10:14)   письмо автору
 
   для: KPETuH   (09.11.2007 в 09:35)
 

ничего не получается.
посмотрите пожалуйста.
вот mysql код
:

$query=mysql_query("select name.id_name, name.name, name.id_production, production.production, production.id_production from name, production where name.id_production=production.id_production");  

for ($j=1; $j <=10; $j++) 
    { 
    $num_rows = mysql_num_rows($query); 
    echo '<select name=day'.$j.'size=1>'; 
     

     while($res=mysql_fetch_assoc($query))    
  


    { 

        
     
     
    echo "<option value=".$res['id_name'].">"."[".$res['production']."]"." ".$res['name']."</option>"; 
      

    } 

     
echo '</select>'; 


и dump

--
-- Create schema `tree`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `tree`;
USE `tree`;


--
-- Table structure for table `tree`.`name`
--

DROP TABLE IF EXISTS `name`;
CREATE TABLE `name` (
  `name` varchar(45) default NULL,
  `id_name` varchar(45) NOT NULL default '',
  `id_production` varchar(45) default NULL,
  PRIMARY KEY  (`id_name`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `tree`.`name`
--

/*!40000 ALTER TABLE `name` DISABLE KEYS */;
INSERT INTO `name` (`name`,`id_name`,`id_production`) VALUES 
 ('Тест1','1','1'),
 ('Тест2','2','1'),
 ('Тест3','3','2');
/*!40000 ALTER TABLE `name` ENABLE KEYS */;


--
-- Table structure for table `tree`.`production`
--

DROP TABLE IF EXISTS `production`;
CREATE TABLE `production` (
  `id_production` int(10) unsigned NOT NULL auto_increment,
  `production` varchar(45) NOT NULL,
  PRIMARY KEY  (`id_production`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251;

--
-- Dumping data for table `tree`.`production`
--

/*!40000 ALTER TABLE `production` DISABLE KEYS */;
INSERT INTO `production` (`id_production`,`production`) VALUES 
 (1,'Продукция1'),
 (2,'Продукция2'),
 (3,'Продукция3');

   
 
 автор: kasmanaft   (09.11.2007 в 10:35)   письмо автору
 
   для: kid_a   (09.11.2007 в 10:14)
 

Вот так попробуйте:

$query=mysql_query("select name.id_name, name.name, name.id_production, production.production, production.id_production from name, production where name.id_production=production.id_production");   

for ($j=1; $j <=10; $j++)  
    {  
    $num_rows = mysql_num_rows($query);  
    echo '<select name=day'.$j.'size=1>';  

    mysql_data_seek($query, 0);  

     while($res=mysql_fetch_assoc($query))     
    {  
     
    echo "<option value=".$res['id_name'].">"."[".$res['production']."]"." ".$res['name']."</option>";  
    
    }
      
echo '</select>';  



PS специально привели пример для MySQL? А то наверху использовалась MSSQL..
PS2 у меня работает, проверил..

   
 
 автор: kid_a   (09.11.2007 в 11:31)   письмо автору
 
   для: kasmanaft   (09.11.2007 в 10:35)
 

да.

спасибо)

   
Rambler's Top100
вверх

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