2015-02-06 54 views
1

喜在为下面我创建的群聊应用程序,我使用的行动= createGroup从客户端传递详情如下。记录不会保存到使用PHP数据库中的Android

的Java

public String CreateGroup(String groupname,String username, 
      ArrayList<FriendInfo> result) throws UnsupportedEncodingException { 

     List<String> usersName = new ArrayList<String>(); 
      for (int i = 0; i < result.size(); i++) { 
      usersName.add(result.get(i).userName); 
      } 
       String params = "groupname="+ URLEncoder.encode(groupname,"UTF-8") + 
         "&username="+ URLEncoder.encode(this.username,"UTF-8") + 
         "&password="+ URLEncoder.encode(this.password,"UTF-8") + 
         "&friendUserName=" +usersName+  
         "&action=" + URLEncoder.encode("CreateGroup","UTF-8")+ 
         "&"; 

      Log.i("PARAMS", params); 
      return socketOperator.sendHttpRequest(params); 

这是我的服务器端code.Where我做了错误,因为数据未保存到database.Can任何一个请帮我

PHP

case "CreateGroup": 
    $userId = authenticateUser($db, $username, $password); 

    if ($userId != NULL) 

    { 

     if (isset($_REQUEST['friendUserName']))   
     {    
      $friendUserNames = $_REQUEST['friendUserName']; 
      $friendUserNames = str_replace('[','',$friendUserNames); 
      $friendUserNames = str_replace(']','',$friendUserNames); 
      $friendUserNames = explode(",", $friendUserNames); 
      foreach($friendUserNames as $friendUserName){ 

      $groupname = $_REQUEST['groupname']; 

      $sql = "select Id from users where username='$friendUserName' limit 1"; 
      echo $sql; 
      if ($result = $db->query($sql)) 

      { 
        if ($row = $db->fetchObject($result)) 

        { 
         $requestId = $row->Id; 

         $groupname = $row->Id; 

         if ($row->Id != $userId) 
         { 
           $sql = "insert into group (groupname,providerId, requestId)values(".$groupname.",".$userId.",".$requestId.")"; 
           echo $sql; 


           if ($db->query($sql)) 
           { 
             $out = SUCCESSFUL; 
           } 
           else 
           { 
             $out = FAILED; 
           } 
         } 
         else 
         { 
          $out = FAILED; 
         }             
        } 
        else 
        { 
         $out = FAILED;      
        } 
      } 

      else 
      { 
        $out = FAILED; 
      }    
     } 
     } 
     else 
     { 
       $out = FAILED; 
     }   
    } 
    else 
    { 
     $out = FAILED; 
    } 
break; 

CREATE TABLE IF NOT EXISTS `group` (
`id` int(11) NOT NULL, 
    `groupname` varchar(25) NOT NULL, 
    `providerId` int(25) NOT NULL, 
    `requestId` int(5) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 

-- 
-- Indexes for dumped tables 
-- 

-- 
-- Indexes for table `group` 
-- 
ALTER TABLE `group` 
ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `username` (`providerId`), ADD UNIQUE KEY `userid` (`providerId`), ADD UNIQUE KEY `ufriendid` (`requestId`); 
+0

什么是第二回声$ SQL的输出; ?? – 2015-02-06 06:21:18

+0

@noob第二个回声不打印任何东西它给出失败 – user1 2015-02-06 06:23:49

+0

如何abot首先回声$ sql; ?? – 2015-02-06 06:24:27

回答

1

$ _REQUEST ['friendUserName']发布多个用户名(数组)。所以,你需要处理得当

尝试更换:

$friendUserName = $_REQUEST['friendUserName']; 

$friendUserNames = $_REQUEST['friendUserName']; 
$friendUserNames = str_replace('[','',$friendUserNames); 
$friendUserNames = str_replace(']','',$friendUserNames); 
$friendUserNames = explode(",", $friendUserNames); 
foreach($friendUserNames as $friendUserName){ 
//your rest of code as it is 
} //and end tag for for loop at appropriate position from your code before the last second else 
相关问题