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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Передача значений из формы MULTIPLE в БД

Сообщения:  [1-10]    [11-20]   [21-30]  [31-36] 

 
 автор: Trianon   (30.07.2008 в 13:21)   письмо автору
 
   для: Dizels   (30.07.2008 в 13:08)
 

 $chek = in_array($print['id_category'], $category )? 'selected="selected"' : ''; 

Хотя вместо этих двух запросов лучше бы подошел один LEFT JOIN
Ну да дело ваше...

  Ответить  
 
 автор: Roma   (30.07.2008 в 13:19)   письмо автору
 
   для: Dizels   (30.07.2008 в 13:08)
 

Вам нужен массив $category - массив выбранных категорий
 <select name ='category[]' size="7" multiple="MULTIPLE"> 
        <?php     
            $query 
"SELECT * FROM agro_category";   
            
$result mysql_query($query);   
            while ( 
$print mysql_fetch_array($result))   
            {   
            
$chek in_array($print['id_category'],$category) ? "selected" ""
            echo 
"<option value='".$print['id_category']."' $chek>".$otstup.$print['name']."</option>";   
            }   
         
        
?> 
        </select>

  Ответить  
 
 автор: Dizels   (30.07.2008 в 13:08)   письмо автору
 
   для: Roma   (30.07.2008 в 12:44)
 

спс и последнее)))

вот форма:
        <select name ='category[]' size="7" multiple="MULTIPLE">
        <?php    
            $query 
"SELECT * FROM agro_category";  
            
$result mysql_query($query);  
            while ( 
$print mysql_fetch_array($result))  
            {  
            
$chek $category == $print['id_category'] ? 'selected="selected"' '';
            echo 
"<option value='{$print['id_category']}$chek>{$otstup}".$print['name']."</option>";  
            }  
        
        
?>
        </select>

попытался сюда вставить значения из категории - но не правильно, подскажите, как надо.
Если я правильно понял, то тут нужно массив $category прогонять по циклу, но как это сделать - не знаю.

  Ответить  
 
 автор: Roma   (30.07.2008 в 12:44)   письмо автору
 
   для: Dizels   (30.07.2008 в 12:39)
 

$sql = "select * from ent_cat where id_enterprise=". intval($_GET['id_enterprise']); 
$res=mysql_query($sql);

intval - http://softtime.ru/dic/id_dic=245&id_group=9

  Ответить  
 
 автор: Dizels   (30.07.2008 в 12:39)   письмо автору
 
   для: Trianon   (30.07.2008 в 12:18)
 

Если я правильно понял, то тут было парочка ошибок, я написал вот так:
$sql = "select * from ent_cat where id_enterprise=". intval($_GET['id_enterprise']);
$res=mysql_query(sql);

if(!$res) {
  print "Ашыпка";
}
for($category = array(); $row = mysql_fetch_assoc($res); ) 
    $category[] = $row['id_category']; 
    print_r($category);

В результате выдает вот такое:
Ашыпка
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL
 result resource in Z:\home\domen.ru\www\admin\agro_enterprise\editenterpriseform.php
 on line 35
Array ( )

И еще - поясните плз, что такое intval

  Ответить  
 
 автор: Trianon   (30.07.2008 в 12:18)   письмо автору
 
   для: Dizels   (30.07.2008 в 11:57)
 

// выясняем категории
$sql = "select * from ent_cat where id_enterprise=". intval($_GET['id_enterprise']);
$res=mysql_query();

if(!$res) 
   Ашыпка!

for($category = array(); $row = mysql_fetch_assoc($res); ) 
    $category[] = $row['id_category'];

print_r($category);

  Ответить  
 
 автор: Dizels   (30.07.2008 в 11:57)   письмо автору
 
   для: Dizels   (30.07.2008 в 11:27)
 

И последний вопрос - как теперь из БД выводить эти значения обратно в форму.

Для начала делаю запрос на выборку категорий редактируемого предприятия.
// выясняем категории
$sql=mysql_query("select * from ent_cat where id_enterprise=". $_GET['id_enterprise']);
$s = mysql_fetch_array($sql);
if(is_array($s) && count($s)>0) 
{
$category = $s['id_category'];
}


Дальше проверяю, что получил в $category:

print_r($category); 

Выводит только 1 значение. Что не так?

  Ответить  
 
 автор: Dizels   (30.07.2008 в 11:27)   письмо автору
 
   для: Trianon   (30.07.2008 в 10:48)
 

Огромное спасибо за помощь, вроде все получилось.

  Ответить  
 
 автор: Trianon   (30.07.2008 в 10:48)   письмо автору
 
   для: Dizels   (30.07.2008 в 10:22)
 

>По поводу записи в 13:16 - это моя запись, если смотреть следущую, то там вот что:

Это моя запись. И там вот что:
$category = $_POST['category'];


>Извините, понимаю, что уже порядком надоел, но все же с проблемой нужно разобраться.
>
>Почему $category - не массив?

Потому что Вы это присваивание где-то потеряли.

  Ответить  
 
 автор: Roma   (30.07.2008 в 10:46)   письмо автору
 
   для: Dizels   (30.07.2008 в 10:22)
 

Вам BinLaden, сказав, что $category - не массив, - указал причину возникшей ошибки.
Возможно, вы не выбрали ни одного элемента в селекте.

  Ответить  

Сообщения:  [1-10]    [11-20]   [21-30]  [31-36] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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