【问题标题】:Php, sql interesting query optionphp、sql 有趣的查询选项
【发布时间】:2010-11-11 17:42:16
【问题描述】:
    <input type="checkbox" name="average" value="average" <? if (get_option('average') == 'average'){ echo 'checked="checked"';} ?>>Average

    <input type="checkbox" name="petite" value="petite" <? if (get_option('petite') == 'petite'){ echo 'checked="checked"';} ?>>Petite



     if ( get_option('average') == 'average' ): // choose category
    $average = "AND build = '".get_option('average')."'";
    endif;

    if ( get_option('petite') == 'petite' ): // choose category
    $petite = "OR build = '".get_option('petite')."'";
    endif;


    $qry = mysql_query("SELECT performerid,pic0 FROM ".$table." WHERE **$average $petite** ORDER BY RAND() LIMIT 20");

我怎样才能使这段代码工作?如果选择了 $average,我需要 sql 查询才能工作,是同时选择了 $average 和 $petite,还是只选择了 $petite?

TY!

【问题讨论】:

    标签: php sql wordpress


    【解决方案1】:

    你可以使用这样的东西:

    $selectedCategories = array();
    foreach(array('petite', 'average', 'athletic') as $category)
    {
      if (get_option($category) == $category)
      {
        $selectedCategories[] = $category;
      }
    }
    
    $qry = mysql_query(
     "SELECT performerid,pic0 
        FROM ".$table." 
       WHERE build IN('" . implode("', '", $selectedCategories) . "') 
    ORDER BY RAND() LIMIT 20;");
    

    注意:如果您不选择任何类别,这将不起作用。

    【讨论】:

    • 不是吗?类别一次只出现在一个地方,因此很灵活。
    • 我得到了这个错误,有什么想法吗?偏移量 0 对 MySQL 结果索引 103 无效(或查询数据未缓冲)
    • 根据google,这个错误是在使用mysql_data_seek()的时候出现的,但是我在你的代码中看不到这个函数。
    【解决方案2】:

    你需要使用php函数isset();

    if(isset($_POST)){ //checks if post is set
        if(isset($)POST['average']) && !isset($_POST['petite'])){
            //do staff only average is set
        }
        elseif(isset($_POST['petite']) && !isset($_POST['average'])){
            //do staff only petite is set
        }
        elseif(isset($_POST['average'] && isset($_POST['average']))){
            //do staff both is set
        }
    
    }
    

    【讨论】:

    • 为什么使用 isset 而不是“get_option('average') == 'average'”。它是一个wordpress平台。选项平均值在一个名为 functions.php 的文件中定义。 PS。我有平均,娇小,大,运动,高于平均水平......太多的组合...... :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-02-09
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多