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

Форум PHP

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

 

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

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

тема: Управление большим количеством переменных
 
 автор: codexomega   (29.05.2006 в 16:04)   письмо автору
 
 

Имеется форма с 20-ю полями.
Для получения значений полей формы, используется следующий код:

// - specs_name
if(isset($_POST['specs_name']))
    $specs_name=$_POST['specs_name'];
else
      $specs_name="";

Это одно поле, и одна переменная, а у меня таких поучается 20 штук.
Потом надо удостовериться в том чтобы ни одно поле не осталось пустым.

if(isset($_POST['submit'])){
   if(empty($specs_name)) 
      $alert_message="Warning, specs_name is empty!"; 
   else{
      // insert
   }
}    

И только тогда занести всё это дело в базу данных.

Можно ли как нибудь оптимизировать код, чтобы не повторяться 20 раз?

   
 
 автор: Trianon   (29.05.2006 в 16:10)   письмо автору
 
   для: codexomega   (29.05.2006 в 16:04)
 

<?
$names 
= array('spec_name''ord_name''imp_name');
foreach(
$names as $name)
{
    $
$name '';
    if(isset(
$_POST[$name]))
    {
        $
$name =  $_POST[$name];
        if( empty($
$name) )
                 
$alert_message="Warning, $name is empty!"
        else 
                 ; 
// insert   
    
}
}
?>

   
 
 автор: codexomega   (29.05.2006 в 16:21)   письмо автору
 
   для: Trianon   (29.05.2006 в 16:10)
 

спасибо.

   
 
 автор: codexomega   (29.05.2006 в 19:57)   письмо автору
 
   для: codexomega   (29.05.2006 в 16:21)
 

Что-то не могу сообразить как переменными из массива теперь воспользоваться чтобы составить запрос для добавления данных.
Можно ли не выходя из цикла foreach?


$sql = "INSERT INTO airplane_specs ".
            "(spec_id, spec_name, primary_function, contractor, manufacturer, ".
            "thrust, length, height, wingspan, rotor_diameter, ".
            "speed, ceiling, takeoff_weight, range, armement, ".
            "payload, crew, unit_cost, date_deployed, inventory) ".
            "VALUES(NULL, ?);


Вместо ? в запросе, чем возможно заменить?
Спасибо.

   
 
 автор: Trianon   (29.05.2006 в 20:04)   письмо автору
 
   для: codexomega   (29.05.2006 в 19:57)
 


$sql = "INSERT INTO airplane_specs (spec_id, ". implode(',', $names) .") values(NULL" ;
foreach ($names as $name) $sql .= ", '". mysql_escape_string($$name) . "'";
$sql .= ')';

   
 
 автор: codexomega   (29.05.2006 в 21:20)   письмо автору
 
   для: Trianon   (29.05.2006 в 20:04)
 

Большое спасибо ещё раз!
Всё работает как надо.

   
Rambler's Top100
вверх

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