Примечание. Этот вопрос опубликован здесь.
всем привет,
У меня есть 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()); } }