2016-06-02 3 views
1

private_messagesЯ хочу, чтобы вставить данные в MySQL, но некоторые идентификаторы не поступают в базу данных

enter image description here

message_group

enter image description here

<?php 
include("include/connection.php"); 

include("templates/header.php"); 
include("templates/navbar.php"); 

?> 
<div class="s_send"> 

<?php include("templates/contentLeft.php"); ?> 

    <div id="send"> 

     <h1>Private Message System</h1> 

     <?php 
     include("message_title_bar.php"); 
     ?> 


     <br/> 
     <?php 



     if(isset($_GET['user']) && !empty($_GET['user'])){ 
     ?> 
     <form method="post"> 
     <?php 




      if(isset($_POST['message']) && !empty($_POST['message'])){ 
       $user = $_GET['user']; 
       $random_number = rand(); 
       $message = $_POST['message']; 
       $my_id = $_SESSION['UserName']; 

       $check_con = "SELECT hash FROM message_group WHERE (user_one = '$my_id' AND user_two = '$user') OR (user_one = '$user' AND user_two = '$my_id')"; 
       $check_con_query = mysqli_query($con, $check_con); 
       if(mysqli_num_rows($check_con_query) == 1){ 

        echo "<p>Conversation Already Started!</p>"; 
       } else{ 

        $ccc = "INSERT INTO message_group(user_one, user_two, hash) VALUES('$my_id','$user','$random_number')"; 
        mysqli_query($con, $ccc); 

        $ddd = "INSERT INTO private_messages(group_hash, from_id, message) VALUE('$random_number', '$my_id', '$message')"; 
        mysqli_query($con, $ddd); 
        echo "<p>Conversation Started Now!</p>"; 
       } 
      } 

      ?> 

      Enter Message: <br/> 
      <textarea name="message" rows="7" cols="60"></textarea> 
      <br/> 
      <input type="submit" name="" value="send Message" /> 
      </form> 
     <?php 
     } 
     else{ 

      echo "<b>Select User<b>"; 
      $user_list = "SELECT user_id, u_name FROM registration"; 
      $user_list_query = mysqli_query($con, $user_list); 
      while($run_user = mysqli_fetch_array($user_list_query)){ 
       $user = $run_user['user_id']; 
       $username = $run_user['u_name']; 
       echo "<p><a href='send.php?user=$user'>$username</a></p>"; 
      } 
     } 



     ?> 

    </div> 

<?php include("templates/contentRight.php"); ?> 
</div> 

<?php include("templates/footer.php"); ?> 





<?php 
include("include/connection.php"); 

include("templates/header.php"); 
include("templates/navbar.php"); 

?> 


<div class="c_con"> 

<?php include("templates/contentLeft.php"); ?> 

    <div id="con"> 

     <h1>Private Message System</h1> 

     <?php include("message_title_bar.php"); 

       $my_id = $_SESSION['UserName']; 
     ?> 
     <br/> 


     <?php 

     if(isset($_GET['hash']) && !empty($_GET['hash'])){ 

      $hash = $_GET['hash']; 
      $message_query = "SELECT from_id, message FROM private_messages WHERE group_hash ='$hash'"; 
      $message_query_start = mysqli_query($con, $message_query); 
      while($run_message = mysqli_fetch_array($message_query_start)){ 
       $from_id = $run_message['from_id']; 
       $message = $run_message['message']; 

        $user_query = "SELECT u_name FROM registration WHERE user_id = '$from_id'"; 
        $user_query_start = mysqli_query($con, $user_query); 
        $run_user = mysqli_fetch_array($user_query_start); 
        $from_username = $run_user['u_name']; 


      echo "<p><b>$from_username</b><br/>$message</p>"; 
      } 
     ?> 
      <br/> 
      <form method="post"> 
      <?php 

      if(isset($_POST['message']) && !empty($_POST['message'])){ 
       $new_message = $_POST['message']; 
       $fff = "INSERT INTO private_messages(group_hash, from_id, message) VALUES('$hash', '$my_id', '$new_message')"; 
       mysqli_query($con, $fff); 
       header('location: conversations.php?hash='.$hash); 
      } 

      ?> 
       Enter Message: <br/> 
       <input type="text" name="message" style="width:200px; height:100px;" /> 
       <br/> 
       <input type="submit" value="send Message" /> 
      </form> 


     <?php 


     } 
     else{ 
      echo "<b>select conversation: </b>"; 
      $get_con = "SELECT hash, user_one, user_two FROM message_group WHERE user_one = '$my_id' OR user_two = '$my_id'"; 
      $get_con_query = mysqli_query($con, $get_con); 
      while($run_con = mysqli_fetch_array($get_con_query)){ 
       $hash = $run_con['hash']; 
       $user_one = $run_con['user_one']; 
       $user_two = $run_con['user_two']; 

        if($user_one == $my_id){ 
         $select_id = $user_two; 
        } 
        else{ 
         $select_id = $user_one; 
        } 
       $user_get = "SELECT u_name FROM registration WHERE user_id = '$select_id'"; 
       $user_get_query = mysqli_query($con, $user_get); 
       $run_user = mysqli_fetch_array($user_get_query); 
       $select_username = $run_user['u_name']; 

       echo "<p><a href='conversations.php?hash=$hash'>$select_username</a></p>"; 
      } 
     } 

     ?> 
    </div> 

    <?php include("templates/contentRight.php"); ?> 
</div> 
+0

Возможно, вы можете добавить предложение? –

+0

Я думаю, что «вопрос» - это картинки и заголовок .., но ПОЖАЛУЙСТА, измените код ур, чтобы никто не мог копать, как моль: D – KikiTheOne

+0

и ошибки в том, что именно? О, это верно; вы не проверяете их. Ну, вот и все. Сделайте это, и вы получите причину, по которой ваш код не подходит вам. Добро пожаловать в мир кодеров! –

ответ

2

Я не уверен, что это помогает, но вы можете распечатать значение своего $my_id с помощью die($my_id);. Проверьте, не получаете ли вообще что-либо. Второе, что я заметил, это следующее: $my_id = $_SESSION['UserName']; Предполагая, что переменная $_SESSION['UserName'] содержит строку (из-за UserName), вы пытаетесь добавить строку в столбец int (также считая, что столбец со значениями 0 является типом int)? Это может быть случай, так как строка без чисел равна 0.

+0

да, вы правы. Я добавляю строку в колонку int. показывает 0 значение в базе данных – Ameen

+0

Я использовал $ my_id с die ($ my_id); и я получаю вывод, который мне нужен, и он работает нормально, но я также хочу вставить значение $ my_id в базу данных. – Ameen

+0

Вы не можете вставить значение non-number в столбец int. Таким образом, вам нужно что-то вроде '$ _SESSION ['UserId']' или другая функция для извлечения, иначе вы всегда будете иметь 0. –

2

Проблема заключается в том

$my_id = $_SESSION['UserName']; 

Вы должны изменить имя сеанса

$my_id = $_SESSION['id']; 

Смотрите изображение:

enter image description here

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