条件语句mysql基于用户名字段的字符串中的第一个字符

时间:2013-12-02 16:33:24

标签: php mysql

我创建了一个数据库,我希望有两种用户类型,基本上我想在用户名字段中基于序列中的第一个字符($ str [0])创建一个条件语句。例如,如果用户名以“A”开头,则重定向到a.html其他用户名以“B”重定向到b.html开头。

我做了一个基本的尝试,但是失败了,

  if($myusername==$str ==='a:0;') {
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

} else if ($myusername==$str ==='b:0;'){
    $sql="SELECT * FROM $tbl_two WHERE username='$myusername' and password='$mypassword'";
}
$result=mysql_query($sql);

2 个答案:

答案 0 :(得分:0)

只是为了分解我认为你的问题:

如何选择字符串的第一个字符:

$string = "abc";
echo $string[0];
// This will output: "a"

使用相同的变量比较两个条件

if($myusername === $str && $myusername[0] === 'a') {
  // Do something..
}

我仍然不太确定我是否理解你想要达到的目标,但至少这应该指引你朝着正确的方向前进:)

答案 1 :(得分:0)

查看你的代码,a:0;似乎来自正在解析的变量,并为您提供的不仅仅是您想要的值。

你真正想要的是直接读取值(IE,你如何读取这个值?)并检查第一个字符是否是你想要的:

$myusername = $_POST['username'];

要根据第一个字符重定向,它将如下所示:

$firstChar = substr($myusername, 0, 1);

if ($firstChar == "a")
    $sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
elseif ($firstChar == "b")
    $sql="SELECT * FROM $tbl_two WHERE username='$myusername' and password='$mypassword'";

如果你有两个以上的选项,你可能想要做一个switch语句而不是“if”。