Abfrage DB - Zeiten vergleichen - Logikproblem

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

  • #46
    Wie Wo Was vertauschen ?
    Manus manum lavat.

    Kommentar


    • #47
      kürzen wir's einfach ab
      Code:
      SELECT 
        a.id, CONCAT(a.date, ' ', a.time) start, a.length, 
        SUM(
         (CONCAT(a.date, ' ', a.time)  BETWEEN CONCAT(b.date, ' ', b.time) AND CONCAT(b.date, ' ', b.time) + INTERVAL b.length MINUTE)
         +
         (CONCAT(b.date, ' ', b.time)  BETWEEN CONCAT(a.date, ' ', a.time) AND CONCAT(a.date, ' ', a.time) + INTERVAL a.length MINUTE)
        ) konflikt
      FROM 
        vortrag a, vortrag b 
      WHERE 
        a.id != b.id
      GROUP BY
        a.id, start, a.length
      ORDER BY start
      tut das?

      hast du die spalten date und time jetzt endlich mal zusammengefasst um uns allen tipparbeit zu sparen?
      Ich denke, also bin ich. - Einige sind trotzdem...

      Kommentar


      • #48
        Ja, es tut, was es soll

        Ist aber ganz schön kompliziert geworden, oder ?

        hast du die spalten date und time jetzt endlich mal zusammengefasst um uns allen tipparbeit zu sparen?
        Ich warte mal auf die Produktiv DB - da ist das sicherlich zusammengefaßt.

        Habe ich mich eigentlich schon bedankt, wenn nicht, dann DANKE du Häuptling

        Der Indianer
        Manus manum lavat.

        Kommentar


        • #49
          Original geschrieben von Churchill27
          Ja, es tut, was es soll
          fein
          Ist aber ganz schön kompliziert geworden, oder ?
          wegen deinen tollen sonderwünschen und der aufteilung des seminarstarts auf zwei spalten
          Ich warte mal auf die Produktiv DB - da ist das sicherlich zusammengefaßt.
          mach das lieber jetzt gleich, weißt doch: wem du's heute kannst... *scnr*
          ernsthaft: korrigier das lieber jetzt schon, sind ja nur ALTER TABLE (3x) und UPDATE (1x)
          Zuletzt geändert von mrhappiness; 03.02.2004, 22:30.
          Ich denke, also bin ich. - Einige sind trotzdem...

          Kommentar


          • #50
            So, habe ich jetzt gemacht ...

            SQL sieht dann so aus:

            SELECT a.id, a.datum, a.length, SUM( (
            a.datum
            BETWEEN b.datum AND b.datum + INTERVAL b.length MINUTE
            ) + b.datum
            BETWEEN a.datum AND a.datum + INTERVAL a.length MINUTE ) konflikt
            FROM vortrag a, vortrag b
            WHERE a.id != b.id
            GROUP BY a.id, a.length
            ORDER BY a.datum LIMIT 0 , 30

            Ergebnis so:

            1 2004-04-25 08:00:00 90 0
            2 2004-04-25 09:40:00 90 0
            3 2004-04-25 12:00:00 90 1
            5 2004-04-25 12:40:00 90 1
            4 2004-04-25 14:00:00 90 0
            7 2004-04-25 18:00:00 120 0
            8 2004-04-26 09:00:00 90 1
            9 2004-04-26 09:30:00 90 0


            Also wie unsere vorherige Variante ... na, was habe ich jetzt schon wieder falsch gemacht ?
            Manus manum lavat.

            Kommentar


            • #51
              du musst den teil hinter dem + noch in klammern setzen, die hast du in deinem jugendlichen eifer auch entfernt
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #52
                Jo, habe ich korrigiert ... muss doch schon früher ins Bett ... bis die Tage

                DAAAAAAAAAAAAAAAAAAAAAANNNNNNKKKKKKKKKKEEEEEE nochmal ... GOTT
                Manus manum lavat.

                Kommentar


                • #53
                  kannst mir ja ein foto von dem schrein, den du mir errichtet hast schicken *g*
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #54
                    Hallöchen,
                    ich habe da noch mal eine Frage.
                    Ich habe meine Tabelle jetzt noch um eine weitere Spalte erweitert, die abstract heißt. Dort stehen die Inhalte zu den einzelnen IDs drin.

                    Mein Ergebnis kann man unter
                    http://www.kirchel.de/congress/itinerary.php sehen.

                    Nun möchte ich, wenn man auf eine headline klickt, darunter der Erklärungstext erscheint (Spalte abstract)

                    Hat jemand eine Idee ?

                    Mein Problem ist, dass ich ja irgendwie die ID übergeben muss und in die DB-Abfrage einbauen muss

                    Gruß Olli
                    Manus manum lavat.

                    Kommentar


                    • #55
                      die id kriegst du ja anhand des SELECT

                      du musst jetzt die headline als lin k ausgeben mit itinerary.php?id=<die id> und in itinerary.php prüfst du dann $_GET['id']
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #56
                        Jo,
                        habe wohl die Frage falsch gestellt ... ist auch eher ein Logikproblem:

                        Mein Code sieht so aus:
                        PHP-Code:
                        while($row mysql_fetch_array($sql_sel_vortrag)){
                            echo 
                        '<tr bgcolor="'.$con_tab_bg_color.'">'."\n";
                                echo 
                        '<td class="fett_w_10" width="'.$con_col_width_1.'" align="center" valign="top">'.$row[id].'</td>'."\n";
                                echo 
                        '<td class="fett_w_10" width="'.$con_col_width_2.'" align="center" valign="top">'.$row[datum].'<br>'.$row[length].' minutes</td>'."\n";
                                echo 
                        '<td class="fett_w_10" width="'.$con_col_width_3.'" align="left" valign="top">'.$row[ort].'</td>'."\n";            
                                echo 
                        '<td class="fett_w_10" width="'.$con_col_width_4.'" align="left" valign="top"><a href="itinerary.php?id='.$row[id].'">'.$row[theme].'</a><br><font class="ita_10">'.$row[consultant].'</font></td>'."\n";
                                echo 
                        '<td class="fett_r_12" width="'.$con_col_width_5.'" align="center">'.overlapping($row[konflikt]).'</td>'."\n";
                            echo 
                        '</tr>'."\n";    

                        Wenn ich jetzt auf den Link klicke, wir auch die ID übergeben. So weit so gut. Nun habe ich aber das Problem, die Ausgabe so zu generieren, dass der Text genau unter der jeweiligen Headline und den Autoren erscheint.

                        Eine Idee ?
                        Manus manum lavat.

                        Kommentar


                        • #57
                          lies ihn doch einfach immer aus (select erweitern) und gebe ihn nur da aus, wo du ihn brauchst


                          is die einfdachste variante
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #58
                            Hi,
                            genau das, ist mein Problem:
                            gebe ihn nur da aus, wo du ihn brauchst
                            Den Select hatte ich schon erweitert und ich bekomme auch die Daten, meine Frage ist nur ...

                            Wo und wie schiebe ich das in die while-Schleife ein ?

                            Wenn ich einfach nur eine Abfrage auf die ID mache, gibt er den Text ja in jeder Zeile aus. Er soll sie aber nur in der Zeile mit der richtigen ID ausgeben.

                            Manus manum lavat.

                            Kommentar

                            Lädt...
                            X