Tutorials erstellen/speichern

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

  • Tutorials erstellen/speichern

    Hi,
    ich möchte auf meiner Homepage Tutorials und Workshops für PHP, HTML, etc.. anbieten, allerdings steh ich momentan vor einem kleinen organisatorischen Problem..

    Die Seite arbeitet mit PHP und MYSQL und ich würde die Tutorials gerne in einer MYSQL-Tabelle speichern, damit ich später ein Suche realisieren kann.

    So ein Tutorial kann aber unter umständen sehr lang werden, deswegen frage ich mich, ob eine Datenbanktabelle da wirklich so geeignet ist, oder ob es sinnvoller wäre, für jedes Tutorial eine eigenes HTML Dokument zu erstellen.

    Als Anforderung an die Tutorials habe ich, dass sich das Tutorial über mehrere Seiten hinweg blättern lässt, wenn es sehr umfangreich ist. Außerdem soll am Ende eine Bewertung möglich sein, da ich eine Topliste auf der Meinpage der Homepage ausgeben möchte.

    Als Ansatz dafür habe ich mit folgende Tabellenstruktur überlegt:
    [FONT=courier new]
    ID | Name | Inhalt | Keywords | Bewertungssumme | Bewertungsanzahl
    [/FONT]

    Konkret ist meine Frage jetzt, ob es sich lohnt so etwas in MYSQL zu speichern und wenn ja, wie ich das mit der Blätterfunktion realisieren könnte, da ich ja nicht mit LIMIT arbeiten kann (weil ja gleiche ID...).

    Hoffe auf viele Meinungen

    Gruß
    Hamster
    PHP Forum
    Sessions in PHP
    Loginsystem mit PHP erstellen

  • #2
    Hi,

    die Feldtypen TEXT und LONGTEXT sind genau die, die du für dein Vorhaben nutzen kannst.

    Eine Blätterfunktion könntest du beispielsweise mit selbst erstellen Tags alá <page></page> machen. Das ganze lässt sich dann sehr schön mit einer Regex auseinandernehmen: guckstu hier

    EDIT:
    Informationen zu den Feldtypen bekommst du hier: http://dev.mysql.com/doc/refman/5.1/de/blob.html
    Zuletzt geändert von prego; 04.11.2006, 20:56.

    Kommentar


    • #3
      ok, die regexe matchen mir dann die verschiedenen 'Pages'

      wie sieht der aufruf im script bei dir aus?

      sowas wie
      foreach($match as $key => $value)
      echo "<a href="tutorials.php?page=".$key.">Seite ".$key."</a>";
      für die verschiedenen seiten
      und
      echo $match[$_GET['page']]
      für den inhalt?
      PHP Forum
      Sessions in PHP
      Loginsystem mit PHP erstellen

      Kommentar


      • #4
        Durch die Anzahl der Matches weißt du ja wieviel Seiten du hast. Du brauchst ja dann nur noch eine Seitenzahl mit zu geben und den entsprechenden Teil des Matches auszugeben.

        Eine einfache for-Schleife reicht für die Seitennavigation. Das einzige was du dafür wissen musst ist ja wieviel Seiten du insgesamt hast und auf welche Seite du dich gerade befindest.

        Also im "Groben" so wie du es geschrieben hast.

        Tipp: benutze die php-Tags des Forums damit der Code schön "bunt" wird

        Kommentar


        • #5
          Hi,

          irgendwie finde ich die regex-lösung nicht so schön. Wenn jemand nach "page"
          sucht, bekommt er ne menge treffer.

          Wie wärs wenn du das problem einfach zerlegst. Ein tutorial hat einen titel, bewertung. Weiterhin hat ein turtorial viele seiten. Und diese seiten
          haben einen inhalt und keywords.
          Du würdest also noch eine tabelle anlegen müssen. Hat den vorteil, dass du
          die pagination ganz einfach hinbekommst und das man die benutzer bei einer
          suche direkt auf die richtige seite im tutorial leiten kann. Ausserdem hast du
          bei updates kleinere teile zu bearbeiten.

          tutorial
          Code:
          id | title | bewertung
          page
          Code:
          id | num | content | keywords
          tutorial_page
          Code:
          tutorial_id | page_id

          greets
          (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

          Kommentar


          • #6
            @ closure

            ja, deine idee habe ich mir auch schon überlegt, aber dann lege ich die seitenverteilung schon beim eintragen in die DB fest, bei der REGEX lösung bleibe ich dabei flexibel, weil ich nur die <page> </page> tags verschieben muss.

            ich denke ich werde jetzt beides mal ausprobieren. thx für die antwortden
            PHP Forum
            Sessions in PHP
            Loginsystem mit PHP erstellen

            Kommentar


            • #7
              tutorial
              Code:
              id | title | bewertung
              page
              Code:
              id | num | content | keywords
              tutorial_page
              Code:
              tutorial_id | page_id
              tutorial_page kannst du dir auch sparen, wenn du in page die spalte tutorial_id direkt mit aufnimmst! machst vielleicht übersichtlicher und du sparst dir eine tabelle mit nur zwei zeilen!

              Kommentar


              • #8
                Habe es jetzt mit der REGEX Methode realisiert un bin echt sehr zufrieden
                Denke mal spätestens nächste woche hab ich nen paar Tuts fertig, dann poste ich mal link
                PHP Forum
                Sessions in PHP
                Loginsystem mit PHP erstellen

                Kommentar


                • #9
                  Original geschrieben von Hirnhamster
                  Habe es jetzt mit der REGEX Methode realisiert un bin echt sehr zufrieden
                  Denke mal spätestens nächste woche hab ich nen paar Tuts fertig, dann poste ich mal link
                  wenn du in deinem Tutorial eine Regexpres-Seiten-Lösung machen willst, dann brauchst du kein link zu posten.

                  tabelle tutorial_page macht erst dann Sinn, wenn ein Page zu mehreren Tutorials gehören kann.
                  diese Lösung ist nur um Auflösen von N zu N Beziehung interessant.

                  tutorial

                  id | title | datum| bewert_durchschnitt | bewert_anzahl
                  --------------------------------------------------------------------------------
                  für bewertung ist ein feld vermutlich nicht ausreichend, da die bewertun ein durchnitswert braucht.

                  bei einfügen:
                  bewert_durchschnitt =
                  (bewert_durchschnitt *bewert_anzahl +neue_bewertung)
                  /
                  (bewert_anzahl+1)
                  und
                  bewert_anzahl=bewert_anzahl+1



                  page

                  tut_id | num | content | keywords =sehr sehr fraglich
                  unique key(tut_id ,num )
                  Slava
                  bituniverse.com

                  Kommentar


                  • #10
                    Hi,

                    @php-desaster && slava
                    ihr habt natürlich recht. ich war gedanklich voll bei einer n:m-beziehung.
                    Richtig ist aber eine 1:n beziehung. In diesem fall geht das selbstverständlich
                    über einen fk in der page-tabelle.

                    greets
                    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

                    Kommentar

                    Lädt...
                    X