Просто укажите только имена полей, которые вы собираетесь вставить в данный момент:
INSERT INTO table (field1, field2, field3) VALUES (value1, value2, value3)
или так
INSERT INTO table SET field1=value1, field2=value2, field3=value3
Независимо от того, слева или справа или в клеточку
, поскольку SQL-запрос - это просто строка, вы можете использовать некоторый PHP-код, чтобы построить эту строку так, как вы хотите.
Вот пример кода в виде очень простой вспомогательной функции для динамического создания оператора SET:
function dbSet($fields) {
$set='';
foreach ($fields as $field) {
if (isset($_POST[$field])) {
$set.="`$field`='".mysql_real_escape_string($_POST[$field])."', ";
}
}
return substr($set, 0, -2);
}
может управляться массивом $fields
.
используется как это
//if we have full set of data
$fields = explode(" ","name surname lastname address zip fax phone");
$query = "INSERT INTO $table SET ".dbSet($fields);
//if we have only three fields ready
$fields = explode(" ","name surname lastname");
$query = "INSERT INTO $table SET ".dbSet($fields);
но вам крайне необходимо изучить основные строковые операции PHP, чтобы иметь возможность делать такие вещи самостоятельно.
Строковые операции наиболее важны в PHP, так как почти каждая задача для PHP - это просто манипулирование строками, как в вашем случае.