2015-02-14 4 views
-1

Я пытаюсь сделать мессенджер с помощью PHP и SQL Это мой кодPHP обмена мгновенными сообщениями

<form action="send_post.php" method="post"> 
    <h3>Name:</h3> 
    <input type="text" name="name"> 
    <h3>Message:</h3> 
    <input type="text" name="message"> 
    <input type="submit"> 
</form> 
<?php 
$servername = "servername"; 
$username = "username"; 
$password = "password"; 
$dbname = "dbname"; 
// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

$sql = "SELECT id, name, message FROM chat"; 
$result = $conn->query($sql); 

if ($result->num_rows > 0) { 
     while($row = $result->fetch_assoc()) { 
       while(1){ 
         ob_start(); 
         echo "" . $row["name"]. " - " . $row["message"]. "<br>"; 

         sleep(10); 
         echo "" . $row["name"]. " - " . $row["message"]. "<br>"; 
         ob_end_clean(); 

} 
} 
} 


$conn->close(); 
?> 

Однако это не работает, есть ли основания для этого? Проблемы начались после того, как я добавил бесконечный цикл while для обновления сообщений.

+0

while (1) {удалить этот цикл –

+0

Но я хочу, чтобы запрос автоматически обновлялся – samrobbins

+2

Как это не работает? Что вы ожидали от этого? Что он делает неправильно? См. [Какие темы можно задать здесь?] (Http://stackoverflow.com/help/on-topic), [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how -to-ask) и [Как создать минимальный, полный и проверенный пример] (http://stackoverflow.com/help/mcve). – Makyen

ответ

1

PHP работает с серверами, что означает, что клиент (гость) запрашивает страницу, которую сервер затем «компилирует», а затем отправляет клиенту в качестве клиентского языка, такого как HTML. Если код PHP никогда не достигнет конца/остановки, клиентский браузер будет думать, что сервер перестает отвечать на запросы и дает ошибку.

Для достижения того, что вы пытаетесь сделать, вы можете захотеть взглянуть на что-то вроде JQuery AJAX, которое позволяет клиенту получать данные с сервера отдельно от основного запроса. Таким образом, вы можете иметь один файл, показывающий только сообщения, и запрашивать этот файл на таймере, имея форму как обычную загрузку страницы. Однако вы можете также сделать вид динамики с использованием JQuery AJAX

UPDATE Вы можете посмотреть на этой blogpost, чтобы получить представление о том, что я говорю.

+0

Я не знаю, кто вас ниспровергал, потому что это правильный ответ, поэтому я решил, что по крайней мере верну вас к голосованию. – mopsyd

+0

Хороший пример было бы неплохо сформулировать его ответ :) – DarkBee

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