2017-04-06 2 views
0

Ich habe in meiner Datenbank eine Tabelle für meine Benutzer erstellt, die ich zusammen mit meiner Tabelle für meine privaten Nachrichten auf meiner Seite verwenden möchte. Ich habe meine Seite so eingerichtet, dass sie die verschiedenen Measages aus meiner privaten Tabelle auflistet, die beide Mitglieder des Nachrichten-Threads namens usr1 und usr2 enthält. In meiner Benutzertabelle habe ich meinen Benutzernamen und eine Bildspalte.Benutzerbild neben Beitrag anzeigen

Ich habe Folgendes versucht, um das Bild auszuwählen, wo usr1 Benutzernamen in Benutzer Tabelle übereinstimmt, so dass ich das Bild vom richtigen Benutzer auswählen kann, und dann das gleiche für us2 getan. Neben dem Versuch, users.username und privat.usr1 zu vergleichen Ich habe versucht, meinen Sitzungsnamen zu verwenden, also sagte ich users.username = $ _SESSION ["navn"] UND privat.usr1 = $ _ SESSION ["navn"] Hier ist mein Code:

$navnbillede = $_SESSION['navn']; 
$query = "SELECT billede FROM users, privat WHERE users.username=privat.usr1"; 
if ($stmt = mysqli_prepare($conn, $query)) { 
mysqli_stmt_execute($stmt); 
mysqli_stmt_bind_result($stmt, $billede); 
while (mysqli_stmt_fetch($stmt)) { 
$billede = $billede; 
} 
mysqli_stmt_close($stmt); 
} 

das funktioniert ein bisschen wie ich habe jetzt die usr1 Bild wie folgt

$navnbillede = $besked["usr2"]; 
    $query = "SELECT billede FROM users, privat WHERE users.username=privat.usr2"; 
    if ($stmt = mysqli_prepare($conn, $query)) { 
    mysqli_stmt_execute($stmt); 
    mysqli_stmt_bind_result($stmt, $billede2); 
    while (mysqli_stmt_fetch($stmt)) { 
    $billede2 = $billede; 
    } 
    mysqli_stmt_close($stmt); 
    } 

neben allen Nachrichten im thread.I dann wiederholen Sie den angezeigten Code ein und dann versuche ich Bild zu setzen wie folgt:

if ($_SESSION['navn'] == $besked["usr1"]) 
{ 
    $image = $billede; 
} 
if ($_SESSION['navn'] !== $besked["usr2"]) 
{ 
    $image = $billede2; 
} 

Und dann laufe ich folgendes:

while($besked2 = mysqli_fetch_array($query2)) 
{ 
?> 
     <li><?php 

     echo '<img src="'.$image.'"style="max-width:100px;max-height:100px;"/>'; 

?> 
    <a style="text-decoration: none; font-weight: bold; color: white;" href="offentlig.php?id=<?php echo $besked2['usr1']; ?>"><?php echo $besked2['usr1']; ?></a> 
     skrev: </br> 
     <?php echo $besked2['besked']; ?><br/><br/> 
     <?php echo date('m/d/Y H:i:s' ,$besked2['tid']); ?></li> 
<?php 
} 

Das funktioniert absolut in Ordnung, aber es zeigt nie wirklich das richtige Bild.

Als Referenz mein besked sieht wie folgt aus (und funktioniert auch):

$query = mysqli_query($conn, 'select title, usr1, usr2 from privat where id="'.$id.'" and id2="1"'); 
$besked = mysqli_fetch_array($query); 

Ich habe versucht, in der Suche mit einem IN JOIN, aber das könnte ich nicht machen die Arbeit entweder ..

Antwort

0

gefunden eine funktionierende Lösung, um das korrekte Bild neben jeder Chat-Nachricht anzuzeigen:

while($besked2 = mysqli_fetch_array($query2)) 
    { 
     $query = 'SELECT billede FROM users, privat WHERE privat.usr1=users.username AND id2='.$besked2["id2"].''; 
     if ($stmt = mysqli_prepare($conn, $query)) { 
     mysqli_stmt_execute($stmt); 
     mysqli_stmt_bind_result($stmt, $billede); 
     while (mysqli_stmt_fetch($stmt)) { 
     $billede = $billede; 
     } 
     mysqli_stmt_close($stmt); 
     } 
    ?> 
      <li><?php 

      echo '<img src="'.$billede.'"style="max-width:100px;max-height:100px;"/>'; 

    ?> 
Verwandte Themen