2015-06-27 24 views
0

蔭努力創造一個用戶發送消息給其他用戶的私人信息系統和內容是使用一種叫做哈希的隨機數,以確定之間的對話插入database..Iam 2個people..table因爲這是「message_group」和表保存的消息是「信息」 ..來這裏的問題..
當我在文本區域鍵入一些內容和SendMessage函數按鈕點擊將數據插入到郵件數據庫..但如果再輸入一次,並嘗試發送它,數據不會進入數據庫..這對方的人只有第一個消息..請幫我解決這個問題..這裏的代碼數據僅輸入首次

<html> 
<head> 
<title>new convo</title> 
</head> 
<body> 
<?php include 'connect.php';?> 
<?php include 'message_title_bar.php';?> 
<?php include 'functions.php';?> 

<div> 
<?php 
if(isset($_GET['user']) && !empty($_GET['user'])){ 
?> 


<form method='post'> 

<?php 
if(isset($_POST['message']) && !empty($_POST['message'])){ 


     $my_id=$_SESSION['user_id']; 

    $user=$_GET['user']; 
    $random_number=rand(); 
    $message=$_POST['message']; 


    $connect = mysqli_connect('localhost','root','','php_mysql_login_system'); 
    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $query_string = "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=mysqli_query($connect,$query_string) or die(mysqli_error($connect)); 
    if(mysqli_num_rows($check_con)==1){ 
     echo "<p>Conversation already Started</p>"; 
    }else{ 
     $connect = mysqli_connect('localhost','root','','php_mysql_login_system'); 

    if (mysqli_connect_errno()) 
    { 
    echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 
     mysqli_query($connect,"INSERT INTO message_group VALUES('$my_id' , '$user' , '$random_number')"); 
    mysqli_query($connect,"INSERT INTO messages VALUES ('','$random_number','$my_id','$message')"); 
    echo "<p>Conversation started</p>"; 
    } 
} 
?> 

Enter message:<br /> 
<textarea name='message' rows='7' cols='60'></textarea> 
<br /> 
<br /> 
<input type='submit' name="submit" value="sendmessage" /> 
</form> 


<?php 


} 

else{ 
    echo "<b>Select User</b>"; 
$connect = mysqli_connect('localhost','root','','php_mysql_login_system'); 
    $user_list=mysqli_query($connect,"SELECT `id`,`username` FROM `users`"); 
    while($run_user=mysqli_fetch_array($user_list)){ 
     $user = $run_user['id']; 
     $username = $run_user['username']; 
     echo "<p><a href='send.php?user=$user'>$username</a></p>"; 
     } 
} 
?> 
</div> 
</body> 
</html> 

任何幫助表示讚賞。

+0

使用AJAX的聊天系統或評論系統......,避免連接數據庫那麼多次...... –

+0

嘗試使用插入功能這樣'mysqli_query($ GLOBALS [「___ mysqli_ston」],「INSERT INTO'表名'('id','msg')VALUES( '的$ id', '$味精')「);' –

+0

我只知道一點php和mysqli..I從來沒有學過阿賈克斯和jquery..so我沒有使用它: (..anyway感謝您的建議兄弟@ DeepakKumar – lancelot

回答

0
<html><head><title>new convo</title></head><body> 
<?php include 'connect.php'; ?> 
<?php include 'message_title_bar.php'; ?> 
<?php include 'functions.php'; ?> 
<?php $connect = mysqli_connect('localhost', 'root', '', 'php_mysql_login_system'); if (mysqli_connect_errno()) echo "Failed to connect to MySQL: " . mysqli_connect_error(); ?> 
<div> 
<?php 
if (isset($_GET['user']) && !empty($_GET['user'])) { 
    ?> 
    <form method='post'> 
     <?php 
     if (isset($_POST['message']) && !empty($_POST['message'])) { 
      $my_id = $_SESSION['user_id']; 
      $user = $_GET['user']; 
      $message = $_POST['message']; 
      $query_string = "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 = mysqli_query($connect, $query_string); 
      if (mysqli_num_rows($check_con)) { 
       $f_array = mysqli_fetch_array($check_con); 
       $hash = $f_array['hash']; 
       echo "<p>Conversation already Started</p>"; 
      } else { 
       $hash = rand(); 
       mysqli_query($connect, "INSERT INTO message_group VALUES('$my_id' , '$user' , '$hash')"); 
       echo "<p>Conversation started</p>"; 
      } 
      mysqli_query($connect, "INSERT INTO messages VALUES ('', '$hash', '$my_id', '$message')"); 
     } 
     ?> 
     <label for="message">Enter message:</label> 
     <textarea name='message' id="message" rows='7' cols='60'></textarea> 
     <br/> 
     <br/> 
     <input type='submit' name="submit" value="sendmessage"/> 
    </form> 
<?php 
} else { 
    echo "<b>Select User</b>"; 
    $user_list = mysqli_query($connect, "SELECT `id`,`username` FROM `users`"); 
    while ($run_user = mysqli_fetch_array($user_list)) { 
     $user = $run_user['id']; 
     $username = $run_user['username']; 
     echo "<p><a href='send.php?user=$user'>$username</a></p>"; 
    } 
} 
?> 
</div> 
</body> 
</html> 
+0

你需要從你的「if(mysqli_num_rows($ check_con)) {「mysqli_query($ connect,」INSERT INTO messages VALUES('','$ random_number','$ my_id','$ message')「); – Oversun

+0

非常感謝您的時間兄弟!我不能跟隨你在那裏做什麼..你可以更具體的部分,你已經修改?再次感謝@Oversun – lancelot

+0

你需要關閉你的「如果」在這一行「if(mysqli_num_rows($ check_con)== 1){ 「之前插入新消息到您的數據庫。在此行後面mysqli_query($ connect,「INSERT INTO message_group VALUES('$ my_id','$ user','$ random_number')」); 回聲「

對話開始

」; – Oversun

0

有代碼的兄弟很多錯誤讀取基本的...你不使用回聲功能打印老人聊天。

只是回聲舊聊天。之前發佈功能。

steps: 
1. Check if users already chatting. 
2. If they are chatting echo chat which they already chatted. 
3. If not chatting then start new chat. 
4. if they are not chatting you dont need to echo anything just echo new message. 

你現在的代碼會告訴你最後一條消息,我想。因爲你的頁面正在重新加載。並且在它加載後,它只是在我的視圖中打印最後一條消息..您還需要打印舊聊天。