Примечание. Этот вопрос опубликован здесь.
всем привет,
У меня есть predefind список из 15 ключевых слов, и есть таблица mysql против каждого ключевого слова. Теперь то, что я хочу сделать, это то, что сначала я хочу проверить ключевое слово, а затем вставить его в соответствующую таблицу. Этот процесс продолжается agian и снова под петлей foreach. Мой вопрос заключается в том, какой подход следует использовать, т. Е. С помощью if else, например
foreach ($ keyword as $ key => $ val)
{
если ($ VAL === 'keyword1'
{
$ query = "insert into values1_tab values ('', $ val);
$ rs = mysql_query ($ query) или die (mysql_error ());
}
еще
если ($ VAL === 'keyword2')
{
$ query = "insert into values2_tab values ('', $ val);
$ rs = mysql_query ($ query) или die (mysql_error ());
}
еще
,
,
,
,
,
еще
если ($ VAL === 'keyword15')
{
$ query = "insert into values3_tab values ('', $ val);
$ rs = mysql_query ($ query) или die (mysql_error ());
}
}
Или что-то еще используется для этого, которое может поддерживать скорость и согласованность.
$tables = array('keyword1' => 'keyword1_tab', 'keyword2' => 'keyword2_tab' ...); foreach($keyword as $key=>$val) { if (isset($tables[$val])) { $query="insert into `".$tables[$val]."` values('', '".$val."')"; $rs = mysql_query($query) or die(mysql_error()); } }
Это единственный правильный способ.
Использование отдельных таблиц для одного и того же вопроса противоречит всем правилам.
Вам необходимо изучить основы реляционных баз данных и привести схему вашей базы данных в эти основные правила.
Однако я не вижу смысла в этих вставках. Что вы делаете в целом? Какова цель всех вставок?
Вы всегда можете сделать это красивее с помощью корпуса коммутатора:
foreach($keywords as $key=>$val){ $query = ""; switch($val){ case "keyword1": $query = "YOUR_QUERY_HERE"; break; case "keyword2": $query = "YOUR_QUERY_HERE"; break; } if(query != ""){ $rs = mysql_query($query) or die(mysql_error()); } }