我在查看将字符串与char进行比较时遇到了麻烦。 我有一个下拉菜单,有两个选项1.教练2.运动员。提交时,值“C”或“A”存储在我的数据库“type”下。我已经让程序看到是否已经创建了“user”,如果“user”不存在,将创建一个目录。因此,只有当“C”作为用户帐户“type”提交时,才能创建目录。
我的代码如下:mytest.php
<?php
$username = "root";
$password = "";
$hostname = "localhost";
$database = "basketball_database";
$table = "users";
mysql_connect($hostname, $username, $password)
or die("Unable to connect to MYsql");
// echo "Connected to mysql<br>";
mysql_select_db("$database")
or die("Could not select Basketball_database");
//echo "Connected to database";
//check to see if user exists
$userquery = mysql_query("SELECT login_name FROM $table WHERE login_name='$_POST[loginName]'");
if (mysql_num_rows($userquery) != 0)
{
echo "Username already exists";
}//end user exists
//insert data to database
else
{
//insert into database
$mysql = "INSERT INTO $table(login_name, password, last_name, first_name, type) VALUES('$_POST[loginName]','$_POST[password]','$_POST[lastName]','$_POST[firstName]','$_POST[dropdown]')";
echo "User was added";
echo '<br>';
if(!mysql_query($mysql))
die("Disconnected");
mysql_close();
我需要帮助的部分。
//创建文件夹
//check to see if user is coach
$typequery = mysql_query("SELECT type FROM $table WHERE type='$_POST[dropdown]'");
$Ctype="C";
if (strcmp($typequery,$Ctype))
{
echo "Directory not created for Athletes";
}// directory for athletes
//Submit button create directory
else
{
if(isset($_POST['reg_submit'])){
$username=$_POST['loginName'];
$cur = getcwd();
if(is_dir($cur . '/'.$username))
{
echo "Directory Exists";
}//end directory exist
//create directory
else{
$new = mkdir($cur . '/'.$username, 0777);
if ( $new ) {
echo '<p>Directory created</p>';
} //end directory created
else {
echo '<p>Directory not created</p>';
}//end directory failed
}//end create directory
}// end Submit button create directory
}//end insert data to database
}//end else user exist
?>
<html>
<title>User Added</title>
<body>
</body>
<form action="users-form.php" method="post">
<input type="submit" value="Add Another User">
</form>
</html>
如果您需要使用提交按钮的相应页面,请告诉我。谢谢
答案 0 :(得分:1)
如果我理解得很好,那么你应该过滤掉(即)login_name来获取用户的类型:
$typequery = mysql_query("SELECT type FROM $table WHERE login_name='$_POST[loginName]");
不要忘记从$ typequery中获取行 - 它只是一个资源! (见http://php.net/mysql_query)
当你得到类型时,你可以将它与一个简单的'=='运算符进行比较,就像@abbiya所说的那样。
最后,不推荐使用php mysql库,你的代码非常容易受到攻击 - 请参阅:Why shouldn't I use mysql_* functions in PHP?
答案 1 :(得分:0)
不确定你想要什么,但如果两个字符串相等,strcmp函数返回0。在您的情况下,即使用户使用c提交表单,也将执行else部分。检查strcmp函数的返回值。您也可以将字符与===
进行比较if(typequery == ctype) { //创建一个文件夹 } else if(typequery =='A') {//显示消息 } else {}
尝试以上方式