Guten Tag,
meine Absicht ist es, eine kleine Umfragefunktion mit Kommentaren von Usern zu erstellen. Diese basiert auf dem bereits gelerntem auf folgendem Beitrag:
- http://www.tutorials.de/php/389936-verschiedene-mysql-tabellen-vergleichen.html
JavaScript:
SQL-Abfrage für Umfrage und Kommentare:
PHP-Ausgabe:
Mit dem onclick="javascript:send(8,' . $eintrag['id'] . ');" führe ich ja die action = 8, also kommentieren aus und überreiche die Information der ID, damit das Kommentar dann zum entsprechenden Beitrag zugeordnet wird.
Meine Frage, wie bekomme ich jetzt das eigentliche Kommentar mit übertragen? Eine zweite Information kann ich doch so einfach nciht hinzufügen, oder? Ich habe schon einige Möglichkeiten durchprobiert, doch wird immer nur die Aktion durchgeführt und die ID übergeben. D.h. unter dem zu kommentierenden Beitrag steht dann der Name des Users und dahinter eben leider nicht sein Kommentar.
Für einen kleinen Tipp bin ich wieder sehr dankbar.
meine Absicht ist es, eine kleine Umfragefunktion mit Kommentaren von Usern zu erstellen. Diese basiert auf dem bereits gelerntem auf folgendem Beitrag:
- http://www.tutorials.de/php/389936-verschiedene-mysql-tabellen-vergleichen.html
JavaScript:
Code:
function send(action,id) {
...
else if(action==8) {
if (confirm("Kommentar?"))
document.form.action.value = "kommentar";
else
return;
}
document.form.id.value = id;
document.form.submit();
}
SQL-Abfrage für Umfrage und Kommentare:
PHP:
// Umfragen
function umfragen( $conid )
{
if ($conid)
{
$sql = "SELECT `id`, `umfragen_thema`, `umfragen_beschreibung`, DATE_FORMAT(`umfrage_laufzeit`,'%d.%m.%Y um %H:%i Uhr') as `laufzeit`, `umfragen_status`, `umfragen_update` FROM `umfragen` WHERE `umfragen_status` = 1 AND `umfrage_laufzeit` >= CURDATE() ORDER BY `umfrage_laufzeit`";
$ergebnis = mysql_query( $sql, $conid );
if (@mysql_num_rows( $ergebnis ))
{
while ($zeile = mysql_fetch_array( $ergebnis ))
{
$datensatz[$zeile['id']]['id'] = $zeile['id'];
$datensatz[$zeile['id']]['thema'] = $zeile['umfragen_thema'];
$datensatz[$zeile['id']]['beschreibung'] = $zeile['umfragen_beschreibung'];
$datensatz[$zeile['id']]['laufzeit'] = $zeile['laufzeit'];
}
}
mysql_free_result( $ergebnis );
return $datensatz;
}
}
// Umfragen-Kommentare
function umfragen_kommentare( $conid )
{
if ($conid)
{
$sql = "SELECT
umfragen_kommentare.id,
umfragen_kommentare.benutzer_id,
umfragen_kommentare.umfragen_id,
umfragen_kommentare.kommentar AS kommentar,
benutzer.nachname,
benutzer.vorname
FROM
umfragen_kommentare
JOIN benutzer
ON umfragen_kommentare.benutzer_id = benutzer.id
JOIN umfragen
ON umfragen_kommentare.umfragen_id = umfragen.id";
$ergebnis = mysql_query( $sql, $conid );
if (@mysql_num_rows( $ergebnis ) > 0)
{
while ($zeile = mysql_fetch_array( $ergebnis ))
{
$datensatz[$zeile['umfragen_id']][$zeile['id']]['umfragen_id'] = $zeile['umfragen_id'];
$datensatz[$zeile['umfragen_id']][$zeile['id']]['nachname'] = $zeile['nachname'];
$datensatz[$zeile['umfragen_id']][$zeile['id']]['vorname'] = $zeile['vorname'];
$datensatz[$zeile['umfragen_id']][$zeile['id']]['kommentar'] = $zeile['kommentar'];
}
}
mysql_free_result( $ergebnis );
return $datensatz;
}
}
/* Datenbankverbindung öffnen */
$conid = dbconnect();
// Umfrage laden
$umfragen = umfragen( $conid );
// Umfragen-Kommentare laden
$umfragen_kommentare = umfragen_kommentare( $conid );
PHP-Ausgabe:
PHP:
echo ' <form name="form" action="" method="post"> ';
echo ' <input name="action" type="hidden" /> ';
echo ' <input name="id" type="hidden" /> ';
/* Aktionen */
if(isset($_POST["action"])) {
/* Kommentar */
if($_POST["action"]=="kommentar") {
$select = "INSERT INTO umfragen_kommentare (benutzer_id, umfragen_id, kommentar) VALUES ('" . $_SESSION[user_id] . "', '" . $_POST["id"] . "', '" . $_POST["kommentar"] . "')"; //erste Schlüsselstelle für Problem $_POST["kommentar"]
mysql_query($select);
if (mysql_affected_rows () > 0) {
echo ' <p class="hinweismeldung">Der Kommentar von ' . $_SESSION["user_vorname"] . ' ' . $_SESSION["user_nachname"] . ' wurde erfolgreich eingetragen.<br />Jetzt <a href="http://'. $_SERVER['SERVER_NAME']. '/umfragen.html">aktualisieren</a> um aktuelle Eintragung anzuzeigen.</p> ';
}
else {
echo ' <p class="fehlermeldung">Es ist ein Fehler aufgetreten.</p> ';
}
}
}
// Umfragen
if (is_array($umfragen))
{
foreach ($umfragen as $eintrag)
{
...
echo ' <h2>Kommentare</h2> ';
if ($umfragen_kommentare[$eintrag['id']] != NULL)
{
foreach ($umfragen_kommentare[$eintrag['id']] as $kommentare)
{
echo ' <div style="height:3px;"></div> ';
echo ' <div style="border:#AAAAAA 1px solid; border-radius:5px; padding:5px; background-color:#FFFFFF;"><b>' . $kommentare['vorname'] . ' ' . $kommentare['nachname'] . ':</b> ' . $kommentare['kommentar'] . '</div> ';
}
}
else
{
echo ' Es gibt noch keine Kommentare. ';
}
echo ' <h2>Beitrag kommentieren</h2> ';
echo ' <textarea name="kommentar['id']" rows="3" cols="20"></textarea> '; //Problem
echo ' <div style="float:left; width:85px;"><input type="submit" value="kommentieren" onclick="javascript:send(8,' . $eintrag['id'] . ');" /></div> '; //weitere Problemstelle
...
echo ' </form> ';
Mit dem onclick="javascript:send(8,' . $eintrag['id'] . ');" führe ich ja die action = 8, also kommentieren aus und überreiche die Information der ID, damit das Kommentar dann zum entsprechenden Beitrag zugeordnet wird.
Meine Frage, wie bekomme ich jetzt das eigentliche Kommentar mit übertragen? Eine zweite Information kann ich doch so einfach nciht hinzufügen, oder? Ich habe schon einige Möglichkeiten durchprobiert, doch wird immer nur die Aktion durchgeführt und die ID übergeben. D.h. unter dem zu kommentierenden Beitrag steht dann der Name des Users und dahinter eben leider nicht sein Kommentar.
Für einen kleinen Tipp bin ich wieder sehr dankbar.