While Schleife Problem (PHP)

02/13/2015 19:57 lnqlorlouz#1
Hallo,

hab ein Problem. Ich habe auf Profilen eine Kommentar-Funktion gemacht und dort gibt es mir jetzt, Datum, ID (von den Usern) und die Nachricht aus.

Alles klappt, bis auf von der ID des Users den Namen raus zu finden und auszugeben...

Habe ne Datenbank-Tabelle kommentar und ne Tabelle login.

Alles wird von der kommentar-Tabelle ausgelesen, bis auf der Username.

Hier mein Code:
PHP Code:
while ($zeile mysqli_fetch_array$db_ergMYSQL_ASSOC))
{
$id $zeile['id'];
$von $zeile['von'];
$an $zeile['an'];

$sql1 "SELECT * FROM login WHERE id =".$von."";
$zeile1 mysqli_fetch_array$db_ergMYSQL_ASSOC);

$vonname $zeile1['username'];


$nachricht $zeile['nachricht'];
date_default_timezone_set('Europe/Berlin');
$timestamp1 $zeile['datum'];
$date date("d.m.Y - H:i",$timestamp1);
echo 
'
        <strong class="pull-left primary-font">'
.$vonname.'</strong>
        <small class="pull-right text-muted">
           <span class="glyphicon glyphicon-time"></span>&nbsp;&nbsp;'
.$date.'</small>
        </br>
        <li class="ui-state-default">'
.$nachricht.' </li>
        </br>'
;}?> 
Jetzt will ich irgendwie mit dem Begriff:
PHP Code:
$sql1 "SELECT * FROM login WHERE id =".$von.""
Den Namen des Users rauslesen.
Aber es zeigt mir keinen User an...ich weiß nicht genau wie ich das mache, wenn ich ne Abfrage in einer while-Schleife habe...

Habe es schon so probiert:
PHP Code:
{
$sql1 "SELECT * FROM login WHERE id =".$von."";
$zeile1 mysqli_fetch_array$db_ergMYSQL_ASSOC);

$vonname $zeile1['username'];

Geht auch nicht.
Und so auch nicht:
PHP Code:
{
{
$sql1 "SELECT * FROM login WHERE id =".$von."";
while (
$zeile1 mysqli_fetch_array$db_ergMYSQL_ASSOC))

$vonname $zeile1['username'];
}

Vielleicht könnt ihr mir ja helfen. :p
02/13/2015 20:43 Warnuk3r#2
Du kannst durch eine einzige Abfrage mehr als nur 1 Tabelle "besuchen". Durch Inner Joins (google mal nach SQL Inner Join) kannst du die Sachen aus der Kommentar-Tabelle rausholen und alle passenden Datensätze des Users, welche anhand der ID ermittelt werden.

Das sieht in etwas so aus:

SELECT kommentar.datum, kommentar.id, kommentar.nachricht, login.name FROM kommentar INNER JOIN login on kommentar.id = login.id

So in etwa, schau dir einfach die Inner Joins an.
02/13/2015 20:44 _robox#3
vor 'mysqli_fetch_array' must du den sql string mit mysqli_query an die db übergeben

PHP Code:
$sql1 "SELECT * FROM login WHERE id =".$von.""
$result mysqli_query($link$sql1);
$zeile1 mysqli_fetch_array$resultMYSQL_ASSOC); 
aber deine vorgesehen weise ist sehr umständlich das geht auch einfacher
02/15/2015 23:16 lnqlorlouz#4
Quote:
Originally Posted by _robox View Post
vor 'mysqli_fetch_array' must du den sql string mit mysqli_query an die db übergeben

PHP Code:
$sql1 "SELECT * FROM login WHERE id =".$von.""
$result mysqli_query($link$sql1);
$zeile1 mysqli_fetch_array$resultMYSQL_ASSOC); 
aber deine vorgesehen weise ist sehr umständlich das geht auch einfacher
Danke es klappt. :o