【问题标题】:php user id assignment not workingphp用户ID分配不起作用
【发布时间】:2014-06-01 12:00:02
【问题描述】:

我正在尝试创建像 facebook 这样的用户组系统,但我在分配用户 ID 时遇到了问题。

我的用户表数据库设计:

username

uid

password

email

我为 group_user 设计的数据库:

group_id

group_name

group_information

group_cover

uid_fk

这样uid_fk 就是用户表中的uid。当用户创建组时,我想将uid 分配给uid_fk

这是我的 PHP 代码:

group_user.php

<?php 
  class group_user 
  {

      public function Create_User_group($group_name,$group_information,$uid) 
      {
        $group_name= mysql_real_escape_string($group_name);
        $group_information= mysql_real_escape_string($group_information);
        $qu= mysql_query("SELECT group_id FROM group_users WHERE
                            group_name='$group_name'");
        if(mysql_num_rows($qu)==0)
        {

            $query = mysql_query("INSERT INTO 
                            group_users(group_name, group_information, uid_fk)
                            VALUES('$group_name','$group_information','$uid')");
            $sqll   = mysql_query("SELECT group_id 
                                    FROM group_users 
                                    WHERE group_name='$group_name' 
                                        and uid_fk='$uid'");
            $row   = mysql_fetch_array($sqll);
            $group_id   = $row['group_id'];
            $group_query = mysql_query("INSERT INTO 
                            group_friends(group_f_one, group_f_two, role)
                            VALUES('$group_id','$group_id','me')");
            return $blog_id ;

      } else {
            return false;
      }
    }     
  }
?>

create_group.php

<?php
    include_once 'includes/db.php';
    include_once 'includes/group_user.php';
    //Create group
    $group_user = new group_user();
    $reg_error='';
    if($_POST['group_name'] && $_POST['group_information'] )
    {
        $group_name=$_POST['group_name'];
        $group_information=$_POST['group_information'];

        if (strlen($group_name)>0 && strlen($group_information)>0)
        {
            $regg=$group_user->Create_User_group($group_name,$group_information);

            if($regg)
            {
                $_SESSION['group_id']=$regg;
                header("Location:group.php");
            }
            else
            {
                $reg_error="<span class='registererror'>Group name Already exist.</span>";
            }

        }
    }
?>

问题是,当用户创建组时 uid_fk 自动为 '0' 而不是 uid。我该怎么做才能解决这个问题?

【问题讨论】:

  • 您在这行代码$regg=$group_user-&gt;Create_User_group($group_name,$group_information); 中缺少第三个参数,该参数将在INSERT 中用作uid_fk
  • @RiggsFolly 非常感谢它现在可以使用了。
  • @RiggsFolly 如何添加一个答案以便它可以被接受,然后问题可能被标记为已回答?
  • 你不应该在这个时代使用mysql_。见phptherightway.com/#databases

标签: php mysql sql database sqlite


【解决方案1】:

您刚刚忘记在调用时放置第三个参数

// missing param 3
$regg=$group_user->Create_User_group($group_name,$group_information);

应该是

$regg=$group_user->Create_User_group($group_name,$group_information, $THE_UID_PARAM);

【讨论】:

    猜你喜欢
    • 2015-04-06
    • 2017-10-10
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2014-11-03
    • 2017-12-06
    • 1970-01-01
    相关资源
    最近更新 更多