PHP MYSQL中的逗号分隔符值和重定向用户

时间:2014-05-05 12:52:38

标签: php mysql

我有一个像这样的表和查询

MY_TABLE

    book_id     values

    1           1,2,3
    2           1,2,4

代码

    <?php 
    $my_value = "1";
    $get_page_query = mysql_query("SELECT * FROM my_table where values IN($my_value)");
    ?>

因此,如果$ my_value在表中,那么请将用户带到welcome.php页面,否则将它们带到error.php页面。

我该怎么做?

请帮帮我

修改

我上面的示例代码无效..请帮帮我

谢谢

4 个答案:

答案 0 :(得分:1)

if(mysql_num_rows($get_page_query)>0){
  header('Location: welcome.php');
  /* Make sure that code below does not get executed when redirected. */
  exit; 
} else {
   header('Location: error.php');
  /* Make sure that code below does not get executed when redirected. */
  exit;
}

答案 1 :(得分:1)

使用mysql_num_rows,试试这个:

if (mysql_num_rows($get_page_query)) {
    header('Location:welcome.php');
} else {
    header('Location:error.php');
}

答案 2 :(得分:1)

您应该更改查询,因为您正在搜索表中存储的集合中的1,而不是相反。更改查询后,您可以使用其他答案中提供的方式,我们最终得到以下代码:

<?php 
$my_value = "1";
$get_page_query = mysql_query("SELECT * FROM my_table WHERE
                               FIND_IN_SET('$my_value' , values)>0");

if(mysql_num_rows($get_page_query)>0){
   //welcome page 
}
?>

旁注1:正如您对问题的评论所述,您的表格结构不合适,您应该尝试规范化您的数据。

旁注2:您不应该使用mysql_ *函数,因为它们已被弃用,请查看PDOMySQLi

答案 3 :(得分:1)

表字段名称中的

错误。您使用values作为表字段名称。这是MySql中的关键字所以请更改您的表字段名称。

book_id book_value

1           1,2,3
2           1,2,4