Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfachkommentarsystem

Einklappen

Neue Werbung 2019

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

  • #16
    Bevor du jetzt schon viel Code schreibst und dann in einer Sackgasse landest, kannst du ja erstmal deine Datenbankstruktur festlegen und sie hier posten.
    Evtl. kann man dich da vor Problemen warnen / auf Fehler hinweisen bevor du unnötig Zeit in den Sand setzt.
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #17
      Zitat von VPh Beitrag anzeigen
      kannst du ja erstmal deine Datenbankstruktur festlegen und sie hier posten.
      Vielen Dank, aber wie mach ich das am Besten? Also soll ich die irgendwie exportieren?

      http://imgur.com/M7S0QOQ

      Also ich dachte ich lasse irgendwie pro commentbox die zur jeweiligen id des parentdivs passende section (in dem beispiel 2) abrufen und dann alle kommentare nach ihrer id (primärschlüssel, auto_increment) absteigend, also die höchste / der neuste kommentar oben

      Kommentar


      • #18
        Z.B. könntest du deine Tabellen hier nachstellen: http://sqlfiddle.com
        Und hier dann einfach den Link posten.

        Würde aber auch schon reichen, wenn du so in der Art darstellst, was für Tabellen du hast:
        Tabelle kommentare
        Spalten:
        id (int, primary key, auto increment),
        comment(varchar),
        section (varchar),
        name (varchar, foreign key [Tabelle user: name]),
        time(datetime)

        Und dann eben knapp dazu schreiben, wie du mit den Tabellen arbeiten möchtest, wie die Beziehungen aussehen, wofür die einzelnen Tabellen da sind.

        Was mir jetzt so auffällt, dass du das Feld "name" hast. Hast du keine User-ID oder so angelegt? Ist auf keinen Fall falsch, aber finde es ein bisschen ungewöhnlich. Auf jeden Fall solltest du für diese Spalte einen Fremdschlüssel anlegen, falls du es noch nicht hast.
        Ist in "section" eine Art ID aus einer anderen Tabelle? Wenn ja, dann auch hier einen Fremdschlüssel zu der Tabelle setzen.
        (Das ist jetzt aber ziemlich losgeraten, genaueres lässt sich natürlich nur sagen, wenn man weiß was du so vorhast und wie deine Datenbank wirklich aussieht.)
        Bisschen was zum Lesen: http://www.peterkropff.de/site/mysql...schluessel.htm
        [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
        [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

        Kommentar


        • #19
          Zitat von VPh Beitrag anzeigen
          Was mir jetzt so auffällt, dass du das Feld "name" hast. Hast du keine User-ID oder so angelegt? Ist auf keinen Fall falsch, aber finde es ein bisschen ungewöhnlich. Auf jeden Fall solltest du für diese Spalte einen Fremdschlüssel anlegen, falls du es noch nicht hast.
          Ist in "section" eine Art ID aus einer anderen Tabelle? Wenn ja, dann auch hier einen Fremdschlüssel zu der Tabelle setzen.
          (Das ist jetzt aber ziemlich losgeraten, genaueres lässt sich natürlich nur sagen, wenn man weiß was du so vorhast und wie deine Datenbank wirklich aussieht.)
          Wow super danke Also Name darf man selbst eintragen, es gibt auf der Seite kein Accountsystem, warscheinlich nehm ich das sowieso ganz raus, dass man halt Anonym seine Meinung zu einem jeweiligen video/content posten kann.

          Hier ist der Aufbau meiner "Contentbox"

          Code:
          <div id="4">
                <div class="boxgrid captionfull">
                   <iframe></iframe>
                     <div class="cover boxcaption c1">
                       <h1>Cloud Nine</h1>
                       <h2>Grant Bowtie // Single</h2>
                    </div>
                </div>
                <div class="wcomments">
                  <form method="post">
                    <input type="text" name="comContent">
                    <input type="submit" value="Senden" id="klick">
                  </form>
                </div>
                <div class="scomments" id="message_box">
                     <<<--  ANHANG -->>>
                </div>
          </div>
          Anhang: Ich möchte für jeden dieser Contentboxen ein Kommentarbreich erstellen, somit wenn die Person was bei .wcomments reinschreibt, muss überprüft werden zu welcher Contentbox der Beitrag gehört, in dem fall siehst du, dass das ParentPartentParentDiv.ID = 4 ist, also Speicher ich den Kommentar in

          [QUOTE=VPh;824526]
          Tabelle kommentare
          Spalte:
          section (int)
          [QUOTE]

          als 4 ab!

          Beim Laden der Seite, was ja automatisch durch das klicken auf den Submit-Button passiert, soll nun alle Kommentare mit der section (int) = 4 in
          Code:
          <div class="scomments" id="message_box">
          Angezeigt werden.

          Und zwar so ungefähr:
          PHP-Code:
          <div class=\"wrapper\"><span class=\"user_name\">$NAME:&nbsp</span><span class=\"user_message\">" $COMMENT "</span></div> 
          Das einzige Problem ist, das ich nicht genau weis wie ich das mit dem Eintragen und abrufen Bewerkstellige.

          die grobe Umsetzung wäre (jetzt mal nicht auf den richtigen syntax geachtet):

          PHP-Code:
          if($_POST) {
          $comment htmlentities($_POST['comContent']);
          $section =parentEl(parentEl(parentEl[id]);
          $name //erst mal egal :)
          $sql "INSERT INTO kommentare (comment, section, name, time);
          VALUES (
          $comment$section$name, FUNCTION(Current_Time)); 
          und bei der ausgabe:

          Code:
          <div class="scomments" id="message_box">
              
              
              
              
          
          
          PHP-Code:
          $get_id=parentEl(parentEl(parentEl[id]);             $result mysql_query(commentnametime)  while section $get_id if($result 0) {echo"<div class=\"wrapper\"><span class=\"user_name\">"name von result .":&nbsp</span><span class=\"user_message\">" comment von result "</span></div>" 
          </div>
          Oder so ähnlich... da muss auch noch die zeit rein und name kann eigentlich weg...

          Kommentar


          • #20
            Achso, k, wenns ohne Account-System ist, kann mans ja auch so einfach belassen.

            PHP-Code:
                    <form method="post">
                      <
            input type="text" name="comContent">
                      <
            input type="submit" value="Senden" id="klick">
                    </
            form
            An diese Stelle, kannst du einfach die ID des DIVs mitgeben. Weiß aber nicht, woher du die nimmst, schreibst du die fest ins HTML oder wird sie von PHP eingefügt?
            PHP-Code:
                    <form method="post">
                      <
            input type="hidden" name="section">
                      <
            input type="text" name="comContent">
                      <
            input type="submit" value="Senden" id="klick">
                    </
            form
            Auf PHP-Seite, nach dem Abschicken, kannst du dann wie üblich mit $_POST['section'] darauf zugreifen.

            Beim Laden der Seite, was ja automatisch durch das klicken auf den Submit-Button passiert, soll nun alle Kommentare mit der section (int) = 4 in
            Jope, da kannst du dann einfach die DB-Abfrage ausführen, mit der Section in der Where-Klausel.
            Anschließend wie üblich, erstmal prüfen wie viele Ergebnisse die Abfrage zurückgibt und dann in einer Schleife die einzelnen Werte + das zugehörige HTML ausgeben.

            PHP-Code:
            if($_POST) { 
            $comment htmlentities($_POST['comContent']); 
            $section =parentEl(parentEl(parentEl[id]); 
            $name //erst mal egal :) 
            $sql "INSERT INTO kommentare (comment, section, name, time); 
            VALUES (
            $comment$section$name, FUNCTION(Current_Time)); 
            Vom Prinzip her her, ja so macht mans.
            erst die Werte im $_POST-Array validieren
            dann die Werte escapen und eintragen (zum Escapen nimmst du aber nicht htmlentities, sondern die Funktion der Datenbankschnittstelle, z.B. mysqli_real_escape_string())


            htmlentities nimmst du dann wieder bei der Ausgabe, wenn du Kommentar und Namen anzeigen willst.
            [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
            [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

            Kommentar


            • #21
              Zitat von VPh Beitrag anzeigen
              Auf PHP-Seite, nach dem Abschicken, kannst du dann wie üblich mit $_POST['section'] darauf zugreifen.
              Ah gute idee, aber wie weiß ich dann beim eintragen welche section gemeint ist kann ich jetzt, je nach Content box einfach
              <input type="hidden" name="section" id="4">
              <input type="hidden" name="section" id="5">
              usw. hinzufügen, bzw wie weiß man beim auslesen der Daten dann in welcher Commentbox man sich befindet, oder setzt man dann einfach bei jeder where-Klausel die entsprechende Nummer schon im HTML-Code ein?

              Danke für die hilfreichen Antworten schon mal

              Kommentar

              Lädt...
              X