2015-05-27 2 views
2

Моя консоль-студия Android должна получать «успех», если запрос «вставить» успешно. Это только успешно, если «hub_code» является новым, иначе он не будет вставляться. Однако, если я регистрируюсь с другим hub_code, запрос регистрирует пользователя, однако он выполняет эхо-код «codexist». Кроме того, запрос создания таблицы не имеет значения в этом вопросе. мой код Android si также не имеет значения, поскольку я только пытаюсь понять, почему консоль получает только «codexist». Ниже приведен мой PHP-код.PHP-код выполняет инструкцию else после завершения запроса

<?php 

    $dbconn=mysqli_connect("localhost","root","") or trigger_error(mysql_error(), E_USER_ERROR); 
    mysqli_select_db($dbconn,"mydatabase"); 

    $username = $_POST["un"]; 
    $password = $_POST["pw"]; 
    $f_name = $_POST["fn"]; 
    $l_name = $_POST["ln"]; 
    $hub_code = $_POST["hc"]; 
    $type = $_POST["type"]; 




    if (!empty(($username)&&($password)&&($f_name)&&($l_name)&&($hub_code))) 
    { 

     $query = "SELECT username FROM tbl_user WHERE hub_code = '".$hub_code."'"; 
     $result = mysqli_query($dbconn, $query); 
     if (mysqli_num_rows($result) == 0) 
     {   
       $query1 = "INSERT INTO tbl_user(username, password, f_name, l_name, hub_code, type) VALUES('$username', '$password', '$f_name', '$l_name', '$hub_code','LECTURER')"; 
       $sql1=mysqli_query($dbconn,$query1); 
       $query2 = "CREATE TABLE $hub_code (
           ID int(11) AUTO_INCREMENT, 
           monday int(1) NOT NULL, 
           tuesday int(1) NOT NULL, 
           wednesday int(1) NOT NULL, 
           thursday int(1) NOT NULL, 
           friday int(1) NOT NULL, 
           saturday int(1) NOT NULL, 
           sunday int(1) NOT NULL, 
           weekcounter int(2) NOT NULL, 
           assdate DATE NOT NULL)"; 
       $result2 = mysqli_query($dbconn, $query2); 
       if(trim($sql1) != "") 
       { 
        echo "Success"; 

       } 
       else 
       { 
        echo "Failure"; 
       } 

     } 
     else 
     { 
      echo "codexit"; 
     } 
    } 



    else 
    { 
     echo "One or both of the fields are empty "; 

    } 

    mysqli_close($dbconn); ?> 

проблема заключается в том, что даже если он регистрирует, когда hub_code является несуществующим, это эхо «codexist» означает, что hub_code уже существует.

+0

Ваше первое условие не делает то, что вы думаете, но я полагаю, что это какие-то работы, просто странный способ сделать это. Вы делаете пустой при условии, что все эти переменные не являются ложными. Таким образом, результат будет истинным или ложным для пустого для оценки, поэтому пустое не нужно. – Devon

+0

Предполагается, что первое условие должно проверить, пусто или нет какие-либо поля в активности андроида. это прекрасно работает. это второе и третье условие, которое кажется проблематичным. –

+0

Пустое() совершенно не нужно в этом первом утверждении. Посмотрите на круглые скобки и как они совпадают. Вы не запускаете пустую на каждом из них, вы работаете пустым в другом состоянии. – Devon

ответ

0
  1. Запустите свой mysql-запрос на сервере mysql (не внутри php), чтобы проверить, что он ведет себя так, как должен.

  2. Эхо строка mysqli_num_rows ($ result). Это также должно помочь определить, что подсчет возвращается.

    1. Echo your $ _POST, чтобы проверить, что оно было опубликовано правильно.

проб и ошибок является единственным способом для отладки это.

Смежные вопросы