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

Форум MySQL

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

 

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

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

тема: Выбор одной из таблиц
 
 автор: caaseer   (18.11.2005 в 00:57)
 
 

я ламер в пхп, но хочу сделать так.
У меня есть 3 таблицы news, news1 и news2
есть форма через которую добавляются данные в таблицы. вот как мне сделать выбор через

  <select size="1" name="lang">
  <option>1</option>
  <option>2</option>
  <option>3</option>
  </select>

тоесть если я выбрал 1, то данные добавились в таблицу news, если выбрал 2, то данные добавились в таблицу news1 итд. Спасибо...

   
 
 автор: cheops   (18.11.2005 в 02:00)   письмо автору
 
   для: caaseer   (18.11.2005 в 00:57)
 

В обработчике HTML-формы c выпадающим списком необходимо использовать следующую конструкцию
<?php
  
switch($_POST['lang'])
  {
    case 
1:
      
$query "INSERT INTO news VALUES (...)";
      break;
    case 
2:
      
$query "INSERT INTO news1 VALUES (...)";
      break;
    case 
3:
      
$query "INSERT INTO news2 VALUES (...)";
      break;
  }
  if(!
mysql_query($query)) exit(mysql_error());
?>


PS Вопросы, посвящённые MySQL, лучше сразу помещать в разделе MySQL

   
 
 автор: Clocker   (18.11.2005 в 02:08)   письмо автору
 
   для: caaseer   (18.11.2005 в 00:57)
 

На самом деле лучше сделать две таблицы: в одной у вас будут хранится идентификаторы и названия категорий новостей - news1, news 2 и news 3.

Первая таблица (news_cats)будет содержать:
id, name

Во второй таблице у вас будут хранится сами новости:
Вторая (news_text):
id
cid или cat_id (принадлежность новости к определенной категории)
date
title
text

Тем самым вы уберете ненужные таблицы

Вывод у вас наверное будет всех новостей из базы, так что этот вопрос можно не рассматривать

А вот как добавить:


 $sql = "Select * from news_cats";
 $result = mysql_query( $sql );

echo '<select  name="cid">';
while ($row= mysql_fetch_array($result)) 
        {
        echo '<option value="'.$row['id'].'">';
        echo '---'.$row['title'];    
    echo '</option>';
                        }
echo '
</select>


P.S. Sorry, могут попасться ошибки, так как сам не выводил этот код, но смысл таков

   
 
 автор: caaseer   (18.11.2005 в 02:45)
 
   для: Clocker   (18.11.2005 в 02:08)
 

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

<?php 
  
switch($_POST['lang']) 
  { 
    case 
1
      
$query "INSERT INTO news VALUES (...)"
      break; 
    case 
2
      
$query "INSERT INTO news1 VALUES (...)"
      break; 
    case 
3
      
$query "INSERT INTO news2 VALUES (...)"
      break; 
  } 
  if(!
mysql_query($query)) exit(mysql_error()); 
?> 

только можно чуть чуть подробней, как использовать конструкцию в обработчике?

   
 
 автор: cheops   (18.11.2005 в 13:27)   письмо автору
 
   для: caaseer   (18.11.2005 в 02:45)
 

Просто вставляйте её в любом месте до выполнения SQL-запроса, если переменная lang принимает значение 1, срабатывает перевый блок case, если 2 - второй, если 3 - третий.
Да, только следует исправить HTML-форму следующим образом
  <select size="1" name="lang"> 
  <option value=1>1</option> 
  <option value=2>2</option> 
  <option value=3>3</option> 
  </select>

   
 
 автор: caaseer   (18.11.2005 в 18:03)
 
   для: cheops   (18.11.2005 в 13:27)
 

Спасибо получилось:)

   
Rambler's Top100
вверх

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