如何从表单复选框进行SQL查询?

时间:2013-05-10 15:32:50

标签: sql forms checkbox

我有两个问题,仅仅是为了逻辑:

我需要一个包含视频游戏的数据库(名称,封面,描述,平台,流派)

我如何才能使其具有多个值?

例如:辐射3是FPS / RPG,但是如果我仅查询FPS或仅查询RPG,我希望能够显示它。 或者只是有一个页面genre.php?genre = FPS显示所有FPS(使用FPS / RPG或FPS / MMO游戏)

查询LIKE是否足够?

第二个问题:

我有一个带有不同复选框的表单,用于将其发送到PHP搜索脚本:

search.php中Q =死+岛&安培; PC =上&安培; PS3 = ON&安培; Xbox360的= ON&安培;的Wii =上

如何创建SQL查询而不必为所有可能性编写它?知道有很多平台(NES,N64等)

示例(简化):

if(PC=on) = SQL search in platform PC

if(PC=on and PS3=on) = SQL search in platform PC and PS3

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

第一个: 你可以有很多选择,

  • 如果类型字段最多包含2个值,则可以使用2个字段 (genre1,genre2)创建表格。
  • 如果游戏和流派之间存在一对多(可以超过2个)的关系,您可以为流派创建一个单独的表格(使用游戏的外键)。
  • 或者,如你所说的那样使用LIKE '%str%' //如果最多2个值
  • 则更好

第二个:

创建一个查询字符串,[此示例在php中]

$sql="Select * from table_name where";
if($_Get['pc']=="on"){
    $sql+=" platform='pc' OR ";    
}

if($_Get['ps3']=="on"){
    $sql+=" platform='ps3' OR";    
    }
// and so on for as many conditions
// at last
$sql+=" 0; "; // This line is necessary because of use of 'OR' before

希望这有助于!!