Comment - Funktion

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Comment - Funktion

    Hi,

    das Thema gabs wahrscheinlich schonmal, aber trotzdem hats mich nicht viel weitergebracht. Also ich schilder mal schnell mein Problem:

    Ich möchte eine Comment Funktion in meine Seite einbauen, damit jeder User ein Comment(Meinung) zu einem Produkt schreiben kann. Jeden Tag erscheinen allerdings neue Produkte, dadurch ist die DB recht umfangreich.
    Aber es sollen eben einzelne Comments sein, also jedes Produkt bekommt eigene Comments, welche auch nur im INFO PHP FILE des jeweiligen Produktes ausgegeben werden.

    Diese Comment Funktionen sind eigentlich auf fast jeder Seite zu finden. Aber irgendwie hab ichs nie hingekriegt sowas zu coden. Vielleicht weiß ja einer von euch wie man sowas macht ? Wäre echt super

    Danke schonmal im Vorraus und Gute N8...(ist ja schon 02:23Uhr) *hehe*

    Gr33tz shadowman23

  • #2
    Ist doch absolut straight-forward:

    DB: neue Tabelle COMMENTS
    - ID bigint unsigned auto_increment primary key,
    - PROD_ID bigint unsigned index,
    - DATUM datetime index
    - TEXT text
    - USE_ID bigint unsigned index
    - bzw. USER varchar(30) index
    (und was du halt sonst noch so reinschreiben willst

    Kommentare ausgeben:
    Code:
    <table border="0"><tr>
      <th>Datum</th>
      <th>User</th>
      <th>Kommentar</th>
    </tr><?php
    // alle Kommentare holen & dazugehörigen Namen aus Tabelle USER
    $q = mysql_query ("select C.*, U.NAME as USERNAME
      date_format('%d.%m.%Y, %H:%i:%s', C.DATUM) as DATUM_AUS,
      from COMMENT C
      left join USER U on U.ID=C.USER_ID
      where PROD_ID=$id order by DATUM desc
    ");
    // ausgeben mit abwechselnder Hintergrundfarbe
    for ($i=0; $x = mysql_fetch_array($q); $i++)
      echo '<tr valign="top" align="left" bgcolor="',
        ($i&1?'silver':'gold'), '">
      <td>', $x[DATUM_AUS], '</td>
      <td><a href="kommentar_suche.php?user_id=', $x[USER_ID],
        '">', $x[USERNAME], '</a></td>
      <td>', htmlentities($x[TEXT]), '</td>
    </tr>';
    ?></table>
    Link "Kommentar abgeben": kommentar_neu.php?id=$id

    etc.pp.
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hey, ok hab mir die Mühe gemacht und angefangen, aber irgendwie krieg ich keine Fehlermeldung und es wird auch nichts in die DB eingetragen...

      Ausschnitt des Codes :

      Name der Datei:
      produktinfo.php?id=$id

      if ($abgeschickt) {
      $db = mysql_connect($dbhost, $dbuname, $dbpass);
      mysql_select_db(MDC, $db);

      $sqlab = "INSERT INTO relcomments (id, relid, section, zeit, comment, username, group) VALUES ('$newid', '$id', '$section', '$time', '$comment', '$username', '$group')";
      $result = mysql_query($sqlab);
      $num = mysql_affected_rows();
      if ($num>0)
      { echo "NEW ID : $newid + REL ID: $relid + SECTION: $section + ZEIT: $time + COMMENT: $comment + USERNAME: $username + GROUP: $group";
      }
      else
      {
      echo "<center>A mistake has occured,";
      echo "no release were added ...try again</center><p>";
      }
      Und unten ist das Fomular, welches die Werte für die Variablen liefern soll:

      echo "<form action='produktinfo.php?id=$id' method='post' enctype='text/plain'>"
      echo "ID : <input name='Name' size='20' value='$newid' hidden><br>";
      echo "REL ID : <input name='Name' size='20' value='$id' readonly><br>";
      echo "SECTION : <input name='Name' size='20' value='$section' readonly><br>";
      echo "ZEIT : <input name='Name' size='20' value='$time2' readonly><br>";
      echo "USERNAME : <input name='Name' size='20' value='$uname' readonly><br>";
      echo "GROUP : <input name='Name' size='20' value='$user_from' readonly><br>";
      echo "Frage: <textarea name='comment' rows='7' cols='30'>Comment hier</textarea><br><br>";
      echo "<input type='submit' name='abgeschickt'>";
      echo "<input type='reset' value='Abbrechen'></form>";
      Ich weiß, dass ist immer blöd, den Source zu pasten, aber was besseres ist mir nicht eingefallen. Da die Tabelle beim Klick auf "Submit" leer bleibt.

      Kommentar


      • #4
        1) Deine Eingabefelder heißen ja alle "Name". Wenn du die nicht ordentlich benennst, kriegst du nur den Wert des zuletzt stehenden geliefert.


        2) Neulich stand hier im Forum, dass readonly-Felder NICHT abgesendet werden. Ergo klau den readonly-Feldern die Namen und füge dem Formular <input type="hidden" ...> mit den gewünschten Namen hinzu.


        3) Falls das alles noch nichts bringt, bringen Dir folgende Schritte zusätzlich Info über die Vorgänge:

        a: Füg mal am Anfang des Insert-Skripts var_dump($HTTP_POST_VARS) ein, dann siehst du - wenn auch etwas unübersichtlich - was vom Formular an dein Skript gesendet wird.

        b: Ergänze das $result = mysql_query($sqlab); folgendermaßen:
        $result = mysql_query($sqlab) or die ("$sqlab: <b>".mysql_error()."</b>";
        Das gibt dir aus, wenn mySQL einen Fehler meldet.
        Statt dieser Methode kannst du übrigens auch die Funktion do_query aus unseren Code-Schnipseln benutzen.


        P.S.: verschoben ins Developer-Forum
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar

        Lädt...
        X