2017-02-04 9 views
0

В настоящее время я программирую чат-систему, и у меня уже есть сообщения в моей базе данных (MySql). Поэтому проблема заключается в том, что я не знаю, как получить эти сообщения из своей базы данных и отобразить ее.Php Chat Выбрать сообщения

<ol class="chat"> 
    <li class="other"> 
     <div class="message"> 
      <p></p> 
     </div> 
    </li> 
</ol> 

Я хочу, чтобы сообщения, чтобы показать, что в

Это хорошее начало «получать сообщения из базы данных»

$query = "SELECT messages, sender FROM `messages`"; 

Thx для всех ответов!

Ok вот мой полный PHP код:

<?php 
ob_start(); 
session_start(); 
include '../Datenbank/dbconnect.php'; 

// if session is not set this will redirect to login page 
if (!isset($_SESSION['user'])) { 
    header("Location: ../login/index.php"); 
    exit; 
} 

// select loggedin users detail 
$res = mysql_query("SELECT * FROM users WHERE userId=" . $_SESSION['user']); 
$userRow = mysql_fetch_array($res); 

$error = false; 
$sender = $userRow['userName']; 

$conn = mysql_connect('localhost', 'root', '', 'dbtest'); 

$query = "SELECT messages, sender, timestamp FROM `messages` ORDER BY `timestamp`"; 

$result = mysql_query($conn ,$query); 

echo '<ol class="chat">'; 

while ($res = mysql_fetch_assoc($result)) { 
    echo " 
     <li class='other'> 
      <div class='message'> 
       <p>Message: ".$res['messages']."</p> 
       <p>Sender: ".$res['sender']."</p> 
       <p>Time: ".$res['timestamp']."</p> 
      </div> 
     </li>"; 

    } 

    echo '</ol>'; 

mysql_close($conn); 

if (isset($_POST['send'])) { 
    $test = true; 
    $message = $_POST['message']; 
    if (empty($message)) { 
     $error = true; 
     $messageError = "Please enter your message."; 
    } 
    if (!$error) { 
     $query = "INSERT INTO messages(message,sender) VALUES('$message','$sender')"; 

     $res = mysql_query($query); 

     if ($res) { 
      unset($message); 
     } else { 
      $errTyp2 = "danger"; 
      $errMSG2 = "Something went wrong, try again later..."; 
     } 
    } 
}; 
?> 

Dbconnect.php:

<?php 

error_reporting(~E_DEPRECATED & ~E_NOTICE); 


define('DBHOST', 'localhost'); 
define('DBUSER', 'root'); 
define('DBPASS', ''); 
define('DBNAME', 'dbtest'); 

$conn = mysql_connect(DBHOST,DBUSER,DBPASS); 
$dbcon = mysql_select_db(DBNAME); 

if (!$conn) { 
    die("Connection failed : " . mysql_error()); 
} 

if (!$dbcon) { 
    die("Database Connection failed : " . mysql_error()); 
} 

ответ

0

Что PHP метод SQL вы используете? mysql_connect, mysqli_connect или PDO? Я приведу пример для mysqli и PDO, поскольку mysql_connect устарел.

MySQLi Пример

// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) 
{ 
    die("Connection failed: " . mysqli_connect_error()); 
} 

// sql your query 
$sql = "SELECT messages, sender FROM messages"; 
$result = mysqli_query($conn, $sql); 

echo '<ol class="chat">'; 

while($row = mysqli_fetch_assoc($result)) { 
{ 
    echo " 
     <li class='other'> 
      <div class='message'> 
       <p>Message: ".$row['messages']."</p> <!-- output message --> 
       <p>Sender: ".$row['sender']."</p> <!-- output sender name --> 
      </div> 
     </li>"; 
} 

echo '</ol>'; 

mysqli_close($conn); 

ПДО Пример

try 
{ 
    // create connection 
    $conn = new PDO("mysql:host=$servername;dbname=$dbname",$username,$password); 
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

    $stmt = $conn->prepare("SELECT messages, sender FROM messages"); // your sql query 
    $stmt->execute(); 

    echo '<ol class="chat">'; 

    while($row = $stmt->fetch(PDO::FETCH_ASSOC)) 
    { 
     echo " 
     <li class='other'> 
      <div class='message'> 
       <p>Message: ".$row['messages']."</p> <!-- output message --> 
       <p>Sender: ".$row['sender']."</p> <!-- output sender name --> 
      </div> 
     </li>"; 
    } 

    echo "</ol>"; 
} 
catch(PDOException $e) 
{ 
    echo "Connection Error : " . $e->getMessage(); 
} 
$conn = null; 

mysql_connect пример (ВНИМАНИЕ! Этот метод является устаревшим в PHP 7)

// create connection 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
// select database 
mysql_select_db('DATABASE_NAME'); 

$sql = "SELECT messages, sender FROM messages"; // your sql query 
$result = mysql_query($sql, $conn); // retrieve result 

if(! $result) 
{ 
    die('Could not get data: ' . mysql_error()); 
} 

echo '<ol class="chat">'; 

while($row = mysql_fetch_array($result, MYSQL_ASSOC)) 
{ 
    echo " 
     <li class='other'> 
      <div class='message'> 
       <p>Message: ".$row['messages']."</p> <!-- output message --> 
       <p>Sender: ".$row['sender']."</p> <!-- output sender name --> 
      </div> 
     </li>"; 
} 

echo "</ol>"; 
mysql_close($conn); 
+0

Thx пока я использую mysql_connect, но я продолжаю получать эту ошибку: mysqli_fetch_assoc() ожидает, что параметр 1 будет mysqli_result, – Jhidzzo

+0

Вы не можете смешивать mysql_connect с mysqli_connect. –

+0

Я изменил его сейчас. Я получаю эту ошибку: mysql_fetch_assoc() ожидает, что параметр 1 будет ресурсом – Jhidzzo