2017-07-19 3 views
2

hier ist my_sqli DatenbankverbindungMit zwei SELECT-Abfragen in PHP-Datenbankverbindung

class FbChatMock { 
    // Holds the database connection 
    private $dbConnection; 
    private $_dbHost = 'localhost'; 
    private $_dbUsername = 'root'; 
    private $_dbPassword = ''; 
    public $_databaseName = 'erp5_temp2'; 
    public function __construct() { 
     $this->dbConnection = new mysqli($this->_dbHost, $this->_dbUsername, 
      $this->_dbPassword, $this->_databaseName); 
     if ($this->dbConnection->connect_error) { 
      die('Connection error.'); 
     } 
    } 

ich bin immer zwei Parameter in der getchat Funktion:

public function getchat($userId, $id){ 
    $meesage = array(); 

    $query = "SELECT u.user_id FROM `users` u where u.id='$id'"; 
    $resultObj = $this->dbConnection->query($query); 
    $user = $resultObj->fetch_assoc()) 
    $userid = $user; 
} 

Ich erhalte die $userid Variable aus der Abfrage und Verwenden Sie es in dieser Abfrage:

$query = "SELECT u.id,c.message,c.sent_on FROM `chat` c JOIN 
    `users` u ON c.user_id=u.user_id where u.id='$id' AND c.user_id='$userid'"; 
    // Execute the query 
    $resultObj = $this->dbConnection->query($query); 
    // Fetch all the rows at once. 
    while ($rows = $resultObj->fetch_assoc()){ 
     $meesage[] = $rows; 
    } 
    return $meesage; 

Und das Problem ist, dass meine erste SQL-Abfrage nicht richtig funktioniert. Ich habe es getestet, indem ich $userid Wert von Echo gezeigt habe.

Antwort

3

Chage diese Linie

$userid = $user; 

Zu diesem

$userid = $user['user_id']; 

Da $ user es ist Array mit allen Spalten, die Sie ausgewählt haben, und Sie müssen von ihm nur ID erhalten.

+0

ich ändere die Zeile um $ userid = $ user ['user_id']; Echo ($ Benutzer-ID); Ausgang(); aber es zeigt kein Echo-Ergebnis –

0

Ihr Problem liegt hier:

$user = $resultObj->fetch_assoc()) 
$userid = $user; 

weil mysqli::fetch_assoc() mit ein assoziatives Array abzurufen. Daher müssen Sie so darauf zugreifen (gegebener Spaltenname in Ihrer Auswahl):

$userid = $user["user_id"]; 
+0

Ich änderte Zeile von diesem $ userid = $ user ['user_id']; Echo ($ Benutzer-ID); Ausgang(); aber es zeigt kein Echo-Ergebnis –

+0

versuchen, 'var_dump()' es und sehen, was es dir sagt –