Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';对于这个php问题,我应该采用什么样的最佳方法_Php_Mysql - Fatal编程技术网

什么';对于这个php问题,我应该采用什么样的最佳方法

什么';对于这个php问题,我应该采用什么样的最佳方法,php,mysql,Php,Mysql,注意:这个问题已经发布了,大家好,我有一个包含15个关键字的预定义列表,每个关键字都有一个mysql表。现在我想做的是 首先,我想检查一个关键字,然后将其插入到相关表中。这一过程在foreach下反复进行 环 我的问题是我应该使用什么样的方法,即它与if-else语句一起使用,如 foreach($keyword as $key=>$val) { if($val==='keyword1' { $query="insert into keyword1_tab values(''

注意:这个问题已经发布了,
大家好,

我有一个包含15个关键字的预定义列表,每个关键字都有一个mysql表。现在我想做的是 首先,我想检查一个关键字,然后将其插入到相关表中。这一过程在foreach下反复进行 环 我的问题是我应该使用什么样的方法,即它与if-else语句一起使用,如

foreach($keyword as $key=>$val) { if($val==='keyword1' { $query="insert into keyword1_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } else if($val==='keyword2') { $query="insert into keyword2_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } else . . . . . else if($val==='keyword15') { $query="insert into keyword3_tab values('', $val); $rs=mysql_query($query) or die(mysql_error()); } } foreach($key作为$key=>$val的关键字) { 如果($val==='keyword1' { $query=“插入关键字1_选项卡值(“”,$val); $rs=mysql\u query($query)或die(mysql\u error()); } 其他的 如果($val=='keyword2') { $query=“插入关键字2_选项卡值(“”,$val); $rs=mysql\u query($query)或die(mysql\u error()); } 其他的 . . . . . 其他的 如果($val=='keyword15') { $query=“插入关键字3_选项卡值(“”,$val); $rs=mysql\u query($query)或die(mysql\u 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());
    }
}
你应该只用一张桌子。句号。 这是唯一正确的方法。
为同一事项使用单独的表格是违反所有规则的。
您需要学习关系数据库设计的基础知识,并使您的数据库模式符合这些基本规则


不过,我觉得这些插入没有什么意义。一般来说,你在做什么?所有这些插入的目的是什么?

不,有15个表请查看我更新的查询thnx以进行更正为什么不只有一个表并添加一个“关键字”“字段?实际上每个关键字都有其名称和id。我想先计算关键字遇到的次数保存此no to one表并将名称和id插入相关关键字。您应该将所有关键字存储在多对多关系类型的一个表中。并使用SQL QueryWhat计算关键字的目的是
$query=“”
@源代码确保变量始终处于初始化状态,我猜。
如果($query!=“”)
将在PHP配置设置为低阈值时引发错误。@jensgram
如果设置($query){…}
@biakaveron是的,这是另一种可能性,但它不会防止((无意中)出现
$query
变量在代码前面设置。不过,这是一个品味问题。如果我想找到特定关键字的计数,即foreach循环计数关键字1 5次,将其插入表中,然后如何知道关键字1的计数我应该为每个关键字放置一个变量,当该关键字匹配时,该变量将递增。
$keyword\u counts=array_count_值($keyword);foreach($keyword_计为$key=>$key_计数){…}
基本思想是,有15个关键字,每个关键字都有其名称和类别。我想计算一个关键字遇到多少次。请将“否”保存在一个表中,并将该关键字的名称保存在另一个表中,以便将来我将这些关键字与新的关键字列表匹配时,首先它将匹配“计数号”。”然后在另一个表中查找关键字的名称。@因此,您必须再问一个描述所有关键字内容的问题,您将得到完整的答案。简言之,您不应该保存关键字的数量,这个数字应该由SQL查询计算,从一个表中发送一封测试邮件到此电子邮件
iphoned99@gmail.com
我会把整个问题发给你。@因为你必须以问题的形式发布,所以社区将能够帮助你。一个社区总比一个人好。
$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());
    }
}