|
|
|
| Имеется форма с 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 раз? | |
|
|
|
|
|
|
|
для: 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
}
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(29.05.2006 в 16:10)
| | спасибо. | |
|
|
|
|
|
|
|
для: 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, ?);
|
Вместо ? в запросе, чем возможно заменить?
Спасибо. | |
|
|
|
|
|
|
|
для: 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 .= ')';
|
| |
|
|
|
|
|
|
|
для: Trianon
(29.05.2006 в 20:04)
| | Большое спасибо ещё раз!
Всё работает как надо. | |
|
|
|