Kommentarfunktion für Forum

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

  • Kommentarfunktion für Forum

    Hallo!

    Ich "verwalte" ein Simple Machines Forum und möchte eine "User zu User" - Kommentarfunktion auf einer seperaten Seite einrichten!

    Was meine ich damit genau:
    Jeder User soll die Möglichkeit haben aus einer "auswahlbox" jeden anderen Benutzer dieses Forums auszuwählen, und in einem "Textfeld" einen Kommentar zu verfassen, welcher in einer MySQL-Datenbank gespeichert wird.

    Ich bin ehrlich gesagt noch recht neu auf dem Gebiet PhP,MySQL weshalb ich hier um Hilfe bitte.
    Ich weiss nicht genau wie ich anfangen soll:
    - Wie ich die Benutzer aus der Datenbank auslese und in die Auswahlbox bringe, und zwar so, dass man sich selbst keine Kommentare schreiben kann
    - Wie man, wenn man schon ein Kommentar zu einem bestimmen Benutzer verfasst hat, diesen für diesen einen Benutzer aus der Auswahlbox entfernt

    Ich habe Programmierkenntnisse in Java und Delphi, so ganz fremd sollte mir es also nicht sein.

    Hat vll. zufälligerweise schon mal jemand so ein ähnliches Script geschrieben? Oder sieht Ähnlichkeiten mit einem bereits existierenden Script?

    Wäre echt sehr erfreut, wenn ihr mir weiterhelfen könntet!

    MfG
    w4rheart

  • #2
    Also eigentlich willst du nur eine Pinnwand für die Benutzer (so wie wir das hier auch haben). Je nach dem, was du für eine Forensoftware hast, könnte es da ja auch schon Plugins geben –*aber die hast du ja nicht erwähnt.
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Simple Machines ist der Name der Software.

      Ich würde auch erstmal nach einem Plugin suchen.

      Wenn du es lieber selber machen willst, dann such dir eine Datei des Forums aus, die der Funktionalität schon recht nahe kommt, entferne alles unnötige, halte aber die relevanten Teile insb. den Grundaufbau.

      Und dann programmierst du los. Das dürfte aber gewisse Grundlagen vorraussetzen. Ein Gästebuch-Tutorial sollte das wesentliche Wissen vermitteln können. Aber bitte ein aktuelles.

      Bei konkreten Fragen einfach wieder hier melden, im Moment sehe ich aber nicht mehr als ein Brainstorming. *verschieb*

      Kommentar


      • #4
        So, folgendes Problem habe ich:

        Code:
        mysql_connect("localhost",$mysqluser,$mysqlpwd);
        $result = mysql_query("SELECT $mysqlspalte FROM $mysqldb;");
        $options = "";
        while ($row = mysql_fetch_array($result)
        { //<-- LINE 21
           $options .= "<option>".$row[$mysqlspalte]."</option>n";
        }
        Liefert die Fehlermeldung:
        Parse error: syntax error, unexpected '{' in on line 21
        Wo liegt der Fehler?

        Kommentar


        • #5
          Hallo,

          sieh dir mal den Kopf deiner while-Schleife an und zähl die (runden) Klammern.

          Gruß,

          Amica
          [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
          Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
          Super, danke!
          [/COLOR]

          Kommentar


          • #6
            ups, sorry.

            Jetzt habe ich aber noch einen weiteren Fehler:
            Code:
            mysql_connect("localhost",$mysqluser,$mysqlpwd);
            $result = mysql_query("SELECT $mysqlspalte FROM $mysqldb;");
            $options = "";
              while ($row = mysql_fetch_array($result)) //<-- LINE 20
              {
                  $options .= "<option>".$row[$mysqlspalte]."</option>n";
              }
            Fehlermeldung:
            Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ......../kommentare.php on line 20
            Meine Auswahlbox bleibt auch leer
            Wieso tuts das nicht?

            MfG

            Kommentar


            • #7
              Du kannst keine Spalten von einer DB abrufen, sondern nur von einer Tabelle. Strings werden nicht mit Variablen gefüllt, sondern verkettet, vor allem in Bezug auf Datenbanken: Gefahr von SQL Injections.

              PHP würde dir gerne den Fehler nennen, aber fragst ihn nicht danach (mysql_error), obwohl die Forenregeln dir genau sagen, wie du vorzugehen hast.

              Also lies erstmal die Regeln.
              [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
              Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
              Super, danke!
              [/COLOR]

              Kommentar


              • #8
                Tut mir Leid, habe es jetzt gelesen.

                Php spuckt folgende Fehlermeldung aus:
                No database selected
                euer SQL
                hiernochmal der Code:
                PHP-Code:
                mysql_connect("localhost",$mysqluser,$mysqlpwd);
                $result mysql_query("SELECT $mysqlspalte FROM $mysqldb;")
                or die(
                mysql_error().'<hr />'.'euer SQL'.'<hr />');
                $options "";
                while (
                $row mysql_fetch_array($result))
                   {
                     
                $options .= "<option>".$row[$mysqlspalte]."</option>n";
                   } 

                Kommentar


                • #9
                  PHP: mysql_select_db - Manual
                  [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                  Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                  Super, danke!
                  [/COLOR]

                  Kommentar


                  • #10
                    Man soll es ja nicht für möglich halten, aber nun funktionierts !!!
                    Danke nochmal

                    Wie kann ich es denn nun einstellen, dass bestimmte zeilen/Namen nicht in die Auswahl box kommen?

                    Also wenn "ausgelsener Name" = x, y, oder z dann ignorieren und nicht hinzufügen?

                    MfG

                    Kommentar


                    • #11
                      Dafür gibt es WHERE.

                      Bitte lerne erst die Grundlagen, bevor wir hier das komplette Script für dich schreiben müssen...

                      Kommentar


                      • #12
                        Ja tut mir ja Leid, das versuche ich ja gerade...
                        Aber es klappt halt nicht so ganz =(

                        Ich habs schon mit:
                        PHP-Code:
                        if ($row[$mysqlspalte] == "xxx"){break;}; 
                        versucht, klappt aber nicht. Ich schaue mir jetzt mal diesen WHERE Befehl an, Danke.

                        MfG

                        Kommentar


                        • #13
                          Hallo nochmal!

                          Also die Namen auslesen, und das in die Datenbank eintragen klappt jetzt!
                          Nun gibt es aber ein weiteres Problem:

                          Man soll zu einer Person jeweils nur 1 Kommentar verfassen können, danach soll der Name in der Auswahlbox nicht noch einmal angezeigt werden.

                          Wie realisiert man das am besten?
                          Ich dachte an eine weitere Spalte in der Benutzer Tabelle, in der der Name des Users gespeichert wird, der für diesen User schon ein Kommentar hinterlassen hat.
                          Beim auslesen der Namen müsste man dann immer Prüfen, ob in der Zeile wo der Name gerade ausgelesen wird, in der erweiterten Spalte schon der Nam edes gerade angemeldeten Users steht.
                          Wenn ja, dann Name nicht anzeige, wenn nicht, dann den Namen anzeigen.

                          Das wäre, mit meiner jetzigen Tabellen struktur die einzige Möglichkeit die mir einfallen würde.

                          Hat jemand von euch nicht noch eine bessere Idee?
                          Ich stelle mir das ziemlich aufwendig vor.

                          Also, falls jemand nch einen Denkanstoss hat, immer her damit =)

                          MfG

                          Kommentar


                          • #14
                            Man soll zu einer Person jeweils nur 1 Kommentar verfassen können, danach soll der Name in der Auswahlbox nicht noch einmal angezeigt werden.
                            das ist doch nur ne simple Abfrage:

                            SELECT COUNT() ... WHERE pinnwand_id = x AND autor_id = y

                            Kommentar


                            • #15
                              Tut mir Leid, ich verstehe nicht ganz wie du das meinst, bzw was du meinst.
                              Oder ich habs einfach falsch verstanden.

                              Eine Spalte "autor_id" existiert bei mir noch nicht.

                              Bisher wird nur das Kommentar aus dem Textfeld ausgelesen und an die Datenbank angefügt, und nicht gespeichert wer das Kommentar geschrieben hat (autor wird also nicht gespeichert).

                              Deshalb ja oben mein Post wie ich nun am besten vorgehen soll...

                              MfG

                              Kommentar

                              Lädt...
                              X