Der Titel ist vielleicht falsch gewählt, aber mir fällt kein besserer ein. Daher kommer ich gleich zum Thema.
Ziel meines Projektes: Zu einer Nachricht seine Meinung sagen, wie Like oder dislike. Dies soll jeder User aber ein einziges Mal machen können. Da die User in einer Datenbank sind, kann ich deren id nehmen und diese in einer separaten Tabelle (voted) abspeichern. Beim laden der Startseite wird also diese Tabelle abgefragt und dementsprechend per if und echo der Link angezeigt oder nur ein Text mit: Du hast schon gestimmt.
Ich Frage eine Tabelle ab:
Da der Inhalt auf der Webseite generiert wird wird die erste Tabelle mittels while() Schleife abgefragt. Zu jeder Nachricht sollen also die Links zu Like dislike generiert werden, paralell zu jeder Nachricht, da sonst keine Logik besteht.
Jedoch bekomme ich nur immer die letzte Nachricht mit Link aktiv oder eben nicht aktiv, den rest jedoch nicht. ( Bei 4 Nachrichten wird nur die letzte angezeigt)
So sieht mein Code zu diesem Problem aus (Join habe ich auch ausprobiert, jedoch werden dann die Nachrichten * Anzahl Zeilen aus voted angezeigt und wenn keine Zeile in Voted dabei wird gar nichts angezeigt).
Kann mir jemand bei diesem Problem helfen?
Ziel meines Projektes: Zu einer Nachricht seine Meinung sagen, wie Like oder dislike. Dies soll jeder User aber ein einziges Mal machen können. Da die User in einer Datenbank sind, kann ich deren id nehmen und diese in einer separaten Tabelle (voted) abspeichern. Beim laden der Startseite wird also diese Tabelle abgefragt und dementsprechend per if und echo der Link angezeigt oder nur ein Text mit: Du hast schon gestimmt.
Ich Frage eine Tabelle ab:
Da der Inhalt auf der Webseite generiert wird wird die erste Tabelle mittels while() Schleife abgefragt. Zu jeder Nachricht sollen also die Links zu Like dislike generiert werden, paralell zu jeder Nachricht, da sonst keine Logik besteht.
Jedoch bekomme ich nur immer die letzte Nachricht mit Link aktiv oder eben nicht aktiv, den rest jedoch nicht. ( Bei 4 Nachrichten wird nur die letzte angezeigt)
So sieht mein Code zu diesem Problem aus (Join habe ich auch ausprobiert, jedoch werden dann die Nachrichten * Anzahl Zeilen aus voted angezeigt und wenn keine Zeile in Voted dabei wird gar nichts angezeigt).
PHP-Code:
$abfrage = "SELECT nachricht, name, vorname, datum, id, magich, magichnicht, benutzerid FROM nachricht ORDER BY id DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$nachricht_nachricht = $row->nachricht;
$nachricht_name = $row->name;
$nachricht_vorname = $row->vorname;
$nachricht_datum = date("d.m.Y H:i",$row->datum);
$nachricht_id = $row->id;
$nachricht_magich = $row->magich;
$nachricht_magichnicht = $row->magichnicht;
$nachricht_benutzerid = $row->benutzerid;
echo
"<div id=\"nachrichten_freunde\"><div id=\"anmelden_align\">
<table width=\"480px\">
<tr>
<td width=\"350px\">
<span style=\"font-size:0.9em\">» <a href=\"profil.php?vorname=$nachricht_vorname&name=$nachricht_name\"> $nachricht_vorname $nachricht_name </a> meint:</span>
</td>
<td width=\"130px\">
<span style=\"font-size:0.9em\">$nachricht_datum</span>
</td>
</tr>
</table>
</div><div id=\"nachrichten_align\">$nachricht_nachricht</div>
<table width=\"480px\">
<tr>";
$abfrage = "SELECT benutzeridvoted, nachrichtidvoted FROM voted WHERE benutzeridvoted = '$id' AND nachrichtidvoted = '$nachricht_id' ";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
$voted_nachrichtid = $row->nachrichtidvoted;
$voted_benutzeridvoted = $row->benutzeridvoted;
if($nachricht_id == "$voted_nachrichtid" and $nachricht_benutzerid == "$id") {
echo "
<td width=\"380px\"><span style=\"font-size:0.7em\"> $nachricht_magich mögen dies</a>, $nachricht_magichnicht mögen dies nicht, du hast schon gestimmt</span></td>";
}
else{
echo
"<td width=\"200px\"><span style=\"font-size:0.7em\"> <a href=\"magich.php?id=$nachricht_id\"> $nachricht_magich mögen dies</a>, <a href=\"magichnicht.php?id=$nachricht_id\"> $nachricht_magichicht mögen dies nicht</a></span></td>";
}
Kommentar