mister anfänger hat wieder ein prob...

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

  • mister anfänger hat wieder ein prob...

    bau grad ein forum, bisher alles ohne hilfe und läuft supi(stolz..o),
    doch jetzt häng ich, weil mir einfach der ansatz fehlt bzw. ich keinen plan habe, wie man das anstellen könnte.
    index.php zeigt mir nur die threads mit name, datum und zeit an......diese sind verlinkt mit lesen.php, dort ist dann der gesamte thread sichbar mit allen posts.
    die sind alle untereinandergeschrieben, doch ohne struktur.
    möchte gern, daß die post zum jeweiligen thread eintsprechend gleich eingerückt werden, halt wie ne baumstruktur.
    vielleicht nochwas zu abhängigkeit:
    erster eintrag: id=1; tid=1 bei allen posts zu diesem thread und pid=id des threads auf den man geantwortet hat.
    PHP-Code:
    $thread_result mysql_query("SELECT id, pid, tid, DATE_FORMAT(datumzeit,'%H:%i') AS zeit,
                            DATE_FORMAT(datumzeit,'%d.%m.%Y') AS datum, name, betreff, ort, email, url, comments FROM "
    .$table."
                            where id='
    $anzeige_id' ORDER BY datumzeit desc");
        while(
    $zeile_thread=mysql_fetch_array($thread_result)){
            
    $tanzeige_id      $zeile_thread["id"];
            
    $tanzeige_pid     $zeile_thread["pid"];
            
    $tanzeige_tid     $zeile_thread["tid"];
            
    $tanzeige_betreff $zeile_thread["betreff"];
            
    $tanzeige_comments$zeile_thread["comments"];
            
    $tanzeige_name    $zeile_thread["name"];
            
    $tanzeige_zeit    $zeile_thread["zeit"];
            
    $tanzeige_datum   $zeile_thread["datum"];
            
    $tanzeige_url     $zeile_thread["url"];
            
    $tanzeige_ort     $teile_thread["ort"];
            
    $tanzeige_mail    $zeile_thread["email"];
            echo (
    "<div style=\"margin-left: 20px;\" class=\"neu\"><span class=\"gelb\">".$tanzeige_betreff."</span> von ".$tanzeige_name.", am ".$tanzeige_datum." um ".$tanzeige_zeit."</div><br>");
            echo (
    "<div style=\"margin-left: 20px;\" class=\"neu\">".$tanzeige_comments."</div><br>");
            echo (
    "<div style=\"margin-left: 20px;\"><div class=\"neu\">Auf diesen <a class=\"stand\" href=\"neu.php?anzeige_id=$tanzeige_id&anzeige_tid=$tanzeige_tid&anzeige_pid=$tanzeige_pid&sesid=$sesid\" onfocus=\"this.blur()\" onmouseover=\"post.src='images/pfeil_o.gif';\" onmouseout=\"post.src='images/pfeil.gif';\"><img border=\"0\" src=\"images/pfeil.gif\" name=\"post\" alt=\"Antwort\" width=\"9\" height=\"9\">Beitrag</a> antworten.</div></div><br>");
            echo (
    "<br><hr width=\"100%\" size=\"1\" color=\"#574F79\"><br>");


        } 
    wäre toll, wenn mir jemand sagen könnte, wie das anstellen muss!
    mfg eddi
    [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

  • #2
    Hi,

    so wie es aussieht arbeitest Du mit nur einer tabelle.

    Ich würde Dir empfehlen, mit 3 Tabellen zu arbeiten:

    1 > Threads
    2 > Post auf Threads
    3 > Posts auf Post_auf_Threads

    Einfache Abfrage:

    erst die Threads abfragen, wie gehabt, dann den verlinkten Thread isolieren und die Posts holen. Innerhalb der "while"-Schleife einfach eine weitere SQL-Abfrage einbauen, die nach Posts auf Post sucht. Eleganter gehts auch über einen JOIN.

    Die Sache hat allerdings einen Haken: Prinzipiell könnte der Baum unendlich tief verzweigt sein, also immer eine Antwort auf jede "Unter"-Antwort. Das könnte knifflig werden, aber die Boardmaster sind ja auch noch da.

    Gruss
    wurzel
    Kissolino.com

    Kommentar


    • #3
      Also wenn du mit Baumstrukturen und beliebiger tiefe arbeiten willst, kann ich dir folgendes Tut empfehlen:

      http://develnet.org/36.html

      Kommentar


      • #4
        @MoRtAlAn

        Da zeigt sich wieder: "Wenn man keine Ahnung hat ... einfach mal Fresse halten" (Dieter Nuhr)

        Also ich ruder mal zurück, keine drei tabs sondern ab und an die Nase in ein Tutorial stecken.


        un tüs
        Kissolino.com

        Kommentar


        • #5


          @wurzel: nix blick, was soll ich damit anfangen ??

          Da zeigt sich wieder: "Wenn man keine Ahnung hat ... einfach mal Fresse halten" (Dieter Nuhr)

          Also ich ruder mal zurück, keine drei tabs sondern ab und an die Nase in ein Tutorial stecken.

          Kommentar


          • #6
            @MoRtAlAn

            nimms als Lob,

            der Rest war Selbstkritik an meine eigene adresse.

            Blick jetzt wieder klar ?
            Kissolino.com

            Kommentar


            • #7
              na, das ging ja hier schon lustig zur sache...

              vielen dank, werde mich mal durch das tut ackern!
              schreie dann schon, wenns brennt!
              mfg eddi
              [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

              Kommentar


              • #8
                aaahhhh

                jetzt steig ich durch

                Kommentar


                • #9
                  nein nein, das ist nicht was ich wollte...

                  und ich blicke überhaupt nicht, wie das an mein forum anpassen könnte!
                  es müßte doch irgendwie mit ner schleife funktionieren! wenn ich zum beispiel die id auslese, diese muss beim thread gleich der tid sein:
                  $id==$tid.....fängt der thread bei margin-left 20 an.
                  dann irgendwie, wenn $pid==der zeile wo $id==$tid ist, auch margin-left 20. das wären also posts auf den haupthread.
                  antwortet jetzt jemand auf ein post, wird die $pid = der $id des post gesetzt.
                  kann man das nicht irgendwie in ner schleife ermitteln und entsprechend der tiefe immer zu margin-left 20 addieren.
                  hoffentlich kann mir jemand helfen.
                  bin ein echter newbie und habe keinen plan, wie so ein ding aussehen könnte, zumal ich mich mit schleifen etwas schwer tue!
                  PHP-Code:
                  $margin 20;
                  $result        mysql_query("SELECT id, pid, tid, DATE_FORMAT(datumzeit,'%H:%i') AS zeit,
                                          DATE_FORMAT(datumzeit,'%d.%m.%Y') AS datum, name, betreff, ort FROM "
                  .$table."
                                          where tid='
                  $anzeige_tid' ORDER BY datumzeit desc");
                      if(!
                  $result) die("Fehler: Die Datenbank konnte nicht abgefragt werden.");
                      while(
                  $zeile=mysql_fetch_array($result)){
                          
                  $anzeige_id      $zeile["id"];
                          
                  $anzeige_pid     $zeile["pid"];
                          
                  $anzeige_tid     $zeile["tid"];
                          
                  $anzeige_betreff $zeile["betreff"];
                          
                  $anzeige_name    $zeile["name"];
                          
                  $anzeige_zeit    $zeile["zeit"];
                          
                  $anzeige_datum   $zeile["datum"];
                          
                  $anzeige_ort     $teile["ort"];

                      
                  /*if ($anzeige_id == $anzeige_tid){
                          $anzeige_margin  = $margin;
                      }elseif ($anzeige_id==$anzeige_pid) {
                          $anzeige_margin = $margin + 20;
                      }else{$anzeige_margin   = $margin;}<-----das war mal nen versuch, kann aber nicht gehen!*/

                          
                  echo ("<div style=\"margin-left: ".$anzeige_margin."px;\" class=\"neu\"><a class=\"vis_f\" href=\"lesen.php?anzeige_id=$anzeige_id&anzeige_tid=$anzeige_tid&anzeige_pid=$anzeige_pid&sesid=$sesid\" target=\"_self\">".$anzeige_betreff."</a> von ".$anzeige_name.", am ".$anzeige_datum." um ".$anzeige_zeit."</div><br>");


                  oder muss ich die arrays zerlegen? oooch mennö, ich weiß es nicht!
                  Zuletzt geändert von mister_x1; 05.12.2002, 19:58.
                  [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                  Kommentar


                  • #10
                    es brennt....

                    weiß mir denn keiner zu helfen?????
                    [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                    Kommentar


                    • #11
                      Re: es brennt....

                      Original geschrieben von mister_x1
                      weiß mir denn keiner zu helfen?????
                      weiss er sich denn gar nicht zu gedulden...?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Also Bastelanleitung:

                        1. Tabelle "threads": id, datum ... usw
                        2. Tabelle "posts": id, t _id , datum ... usw
                        3. Tabelle "sub_posts": id, p_id , datum ... usw



                        PHP-Code:
                        $margin 20;
                        $margin2 40;
                        $margin3 60;


                        // threads abfragen

                        $result   mysql_query("SELECT *, DATE_FORMAT(datumzeit,'%H:%i') AS zeit, DATE_FORMAT(datumzeit,'%d.%m.%Y') AS datum FROM ".$table." ORDER BY datumzeit desc");
                        if(!
                        $result) die("Fehler: Die Datenbank konnte nicht abgefragt werden.");

                        while(
                        $zeile=mysql_fetch_array($result))
                        {
                                
                        $anzeige_id      $zeile["id"];
                                
                        $anzeige_betreff $zeile["betreff"];
                                
                        $anzeige_name    $zeile["name"];
                                
                        $anzeige_zeit    $zeile["zeit"];
                                
                        $anzeige_datum   $zeile["datum"];
                                
                        $anzeige_ort     $teile["ort"];

                                echo (
                        "<div style=\"margin-left: ".$margin."px;\" class=\"neu\"><a class=\"vis_f\" href=\"lesen.php?...\"> ... </a></div><br>");

                                
                        // posts auf threads abfragen

                                
                        $result2   mysql_query("SELECT *, DATE_FORMAT(datumzeit,'%H:%i') AS zeit2, DATE_FORMAT(datumzeit,'%d.%m.%Y') AS datum2 FROM ".$table2."  where t_id = '$anzeige_id' ORDER BY datumzeit desc");
                                if(
                        mysql_numrows($result2) > "0")
                                {
                                while(
                        $zeile2=mysql_fetch_array($result2))
                                {
                                
                        $anzeige_id2      $zeile["id"];
                                
                        $anzeige_betreff2 $zeile["betreff"];
                                
                        $anzeige_name2    $zeile["name"];
                                
                        $anzeige_zeit2    $zeile["zeit"];
                                
                        $anzeige_datum2   $zeile["datum"];
                                
                        $anzeige_ort2     $teile["ort"];

                                echo (
                        "<div style=\"margin-left: ".$margin2."px;\" class=\"neu\"><a class=\"vis_f\" href=\"lesen.php?...\"> ... </a></div><br>");

                                     
                        // subposts abfragen
                                     
                        $result3   mysql_query("SELECT *, DATE_FORMAT(datumzeit,'%H:%i') AS zeit3, DATE_FORMAT(datumzeit,'%d.%m.%Y') AS datum3 FROM ".$table3."  where p_id = '$anzeige_id2' ORDER BY datumzeit desc");
                                     if(
                        mysql_numrows($result3) > "0")
                                     {
                                     while(
                        $zeile3=mysql_fetch_array($result3))
                                     {
                                     
                        $anzeige_id3     $zeile["id"];
                                     
                        $anzeige_betreff3 $zeile["betreff"];
                                     
                        $anzeige_name3    $zeile["name"];
                                     
                        $anzeige_zeit3    $zeile["zeit"];
                                     
                        $anzeige_datum3   $zeile["datum"];
                                     
                        $anzeige_ort3     $teile["ort"];

                                     echo (
                        "<div style=\"margin-left: ".$margin3."px;\" class=\"neu\"><a class=\"vis_f\" href=\"lesen.php?...\"> ... </a></div><br>");



                                     }
                                     }
                                }
                                }


                        Vorsicht, code ist nicht komplett, sollte dir aber einen einfachen lösungsansatz bieten. Der Haken, subposts auf subposts auf subposts von subposts sind so nicht darstellbar.

                        So ich geh jetzt subposts äh suppe essen.

                        check it out
                        Kissolino.com

                        Kommentar


                        • #13
                          vielen dank!

                          okay, musste mal kurz für zwei tage weg, bin wieder da!
                          ich schau mir das mal jetzt in ruhe an! ist sicher ein guter ansatz
                          zum nachdenken und basteln. mit den drei tabellen, das gefällt mir nicht so,
                          aber ich hab da ne idee, welche ich jetzt versuchen werde! ich melde mich, wenn es klappt!
                          mfg eddi
                          [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                          Kommentar

                          Lädt...
                          X