Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Vertragsdatenbank (mysql Auflistung?!)

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Vertragsdatenbank (mysql Auflistung?!)

    Hallo,
    vielleicht könnt ihr mir bei meinem Dilemma helfen, und zwar versuche ich eine Art Vertragsdatenbank zu machen dort gibt es Hauptverträge und diese Hauptverträge können auch Unterverträge haben, die sortiert unter den Hauptverträgen erscheinen sollen (wenn es Unterverträge gibt).

    Im Anhang habe ich mal ein Entwurf gemacht, wie es aussehen soll. (Zum besseren Verständnis)

    Mein Problem:

    >> Wie schaffe ich es alle Hauptverträge + dazugehörige Unterverträge aufzulisten?

    Wenn ich folgende mysql-Anweisung nehme, werden zwar die Hauptverträge angezeigt die auch Unterverträge haben, aber nicht die einzelnen Hauptverträge (wenn es KEINE Unterverträge zu der ID gibt):

    PHP-Code:
    SELECT a.ida.partnera.agreementa.documentdatea.signaturedatebgra.signaturedatepartnera.startdatea.enddatea.cancellationdatea.infoa.lastchangeb.idb.grid_idb.agreementb.documentdateb.signaturedatebgrb.signaturedatepartnerb.startdateb.enddateb.cancellationdateb.info FROM grid AS a INNER JOIN grid_att AS b ON a.id b.grid_id ORDER BY a.ID 
    In der Datenbank habe ich zwei Tabellen:

    grid (Alle Hauptverträge)
    >id
    >partner
    >agreement
    >signaturedatebgr
    >signaturedatepartner
    >startdate
    >enddate
    >cancellationdate
    >info
    >lastchange

    grid_att (Alle Unterverträge, grid_id ist die ID vom Hauptvertrag)
    >id
    >grid_id
    >agreement
    >documentdate
    >signaturedatebgr
    >signaturedatepartner
    >startdate
    >enddate
    >cancellationdate
    >info
    >lastchange


    Danke schon mal!

  • #2
    Wenn du statt INNER JOIN einen LEFT JOIN nimmst, dann werden auch die Einträge aus grid selektiert die keinen Partner in grid_att finden.
    [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

    Kommentar


    • #3
      merci

      Kommentar


      • #4
        Das mit dem LEFT JOIN hat funktioniert. Nun stehe ich wieder vor einem anderen Problem:

        PHP-Code:
        <?php
        $sql 
        mysql_query ("SELECT a.id, a.partner, a.agreement, a.documentdate, a.signaturedatebgr, a.signaturedatepartner, a.startdate, a.enddate, a.cancellationdate, a.info, a.lastchange, b.id, b.grid_id, b.agreement, b.documentdate, b.signaturedatebgr, b.signaturedatepartner, b.startdate, b.enddate, b.cancellationdate, b.info FROM grid AS a LEFT JOIN grid_att AS b ON a.id = b.grid_id ORDER BY a.ID");
        ?> 
        <span class="text"><?php echo "<a href=\"javascript:ow('add.php')\">Add contract</a>"?></span></p>
        <table width="100%" border="0">
          <tr class="topics">
            <td><span class="text">Status</span></td>
            <td><span class="text">Partner</span></td>
            <td><span class="text">Agreement/Contract</span></td>
            <td><span class="text">Document date</span></td>
            <td><span class="text">Signature date BGR</span></td>
            <td><span class="text">Signature date partner</span></td>
            <td><span class="text">Start date</span></td>
            <td><span class="text">End date</span></td>
            <td><span class="text">Cancellation date</span></td>
            <td><span class="text">Additional information</span></td>
            <td nowrap="nowrap"><span class="text">PDF</span></td>
            <td><span class="text">Last modification date</span></td>
            <td><span class="text">Edit</span></td>
          </tr>
          <?php while ($adr mysql_fetch_array($sql)) { ?> 
          <?php if($adr['b.grid_id']=="NULL") { ?>
          <tr class="grid">
            <td bgcolor="#CCCCCC"><?php $vertragsendestro strtotime($adr['a.enddate']); $currentdate strtotime(date("d.m.Y"));
        if (
        $vertragsendestro >= $currentdate OR (empty($adr['a.enddate']))) { echo '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; } if ($vertragsendestro $currentdate AND (!empty($adr['a.enddate']))) { echo '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }  ?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.partner']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.agreement']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.documentdate']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.signaturedatebgr']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.signaturedatepartner']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.startdate']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.enddate']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.cancellationdate']?></td>
            <td bgcolor="#CCCCCC"><?=$adr['a.info']?></td>
            <td nowrap="nowrap" bgcolor="#CCCCCC"><?php $id =$adr['id']; $handle opendir("/$id/");
        while((
        $file=readdir($handle))!=false) { 
            if(
        $file!="." && $file!="..") { 
                echo 
        '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
            }
        ?></td>
            <td bgcolor="#CCCCCC"><?=$adr['lastchange']?>
            <td nowrap="nowrap" bgcolor="#CCCCCC"><?php echo "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
        echo 
        "<a href='index.php?action=del&amp;id=";
        echo 
        $adr['id']."'";
        echo 
        " onclick=";
        echo 
        '"';
        echo 
        "return confirm('Are you sure you want to delete?')";
        echo 
        '"><img src="img/table_delete.png" alt="delete" border="0" /></a>'; }?>        
          </tr>
          <?php ?>
          <?php if($adr['b.grid_id']!="NULL") { ?>
          <tr class="grid">
            <td bgcolor="#FFFFFF"><?php $vertragsendestro strtotime($adr['b.enddate']); $currentdate strtotime(date("d.m.Y"));
        if (
        $vertragsendestro >= $currentdate OR (empty($adr['b.enddate']))) { echo '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; } if ($vertragsendestro $currentdate AND (!empty($adr['b.enddate']))) { echo '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }  ?></td>
            <td bgcolor="#FFFFFF"><img src="img/arrow.png" border="0"/></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.agreement']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.documentdate']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.signaturedatebgr']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.signaturedatepartner']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.startdate']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.enddate']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.cancellationdate']?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.info']?></td>
            <td nowrap="nowrap" bgcolor="#FFFFFF"><?php $id =$adr['b.id']; $handle opendir("/$id/");
        while((
        $file=readdir($handle))!=false) { 
            if(
        $file!="." && $file!="..") { 
                echo 
        '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
            }
        ?></td>
            <td bgcolor="#FFFFFF"><?=$adr['b.lastchange']?>
            <td nowrap="nowrap" bgcolor="#FFFFFF"><?php echo "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
        echo 
        "<a href='index.php?action=del&amp;id=";
        echo 
        $adr['id']."'";
        echo 
        " onclick=";
        echo 
        '"';
        echo 
        "return confirm('Are you sure you want to delete?')";
        echo 
        '"><img src="img/table_delete.png" alt="delete" border="0" /></a>'; }?>
        </td><?php ?>
        </table>

        Wie kann ich nun am einfachsten das so darstellen wie in meinem Entwurfs-Anhang. (Siehe Anhang)

        Wie kann ich hierbei am geschicktesten Vorgehen, hat jemand eine Idee? Danke!

        Kommentar


        • #5
          Zitat von mygov Beitrag anzeigen
          Wie kann ich nun am einfachsten das so darstellen wie in meinem Entwurfs-Anhang.
          Was genau ist jetzt die Frage bzw. dein Problem bei der Ausgabe?


          Ich würde sagen, auch hier kommst du wieder mal mit einem Gruppenbruch weiter,
          Gruppenbruch (Standardverfahren) - PHP.de Wiki
          [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

          Kommentar


          • #6
            d.h. ich muss überall ein echo davor schreiben das die Tabelle auch in der schleife angezeigt wird?

            Aber danke für den Link, das ist glaube das was ich brauche, werde mein Glück noch mal probieren

            Kommentar


            • #7
              nun habe ich das ganze mal in die while schleife gepackt, nun aber führt dies leider nicht zum richtigen Ergebnis. Ich bitte noch mal um ein kurzes drüber lesen und um eventuelle Hilfestellung.

              Bei mir werden nur Felder ohne Werte dargestellt und immer abwechselnd grau und Weiss (Siehe Anhang)

              PHP-Code:
              <?php 
                $sql 
              mysql_query ("SELECT a.id, a.partner, a.agreement, a.documentdate, a.signaturedatebgr, a.signaturedatepartner, a.startdate, a.enddate, a.cancellationdate, a.info, a.lastchange, b.id, b.grid_id, b.agreement, b.documentdate, b.signaturedatebgr, b.signaturedatepartner, b.startdate, b.enddate, b.cancellationdate, b.info FROM grid AS a LEFT JOIN grid_att AS b ON a.id = b.grid_id ORDER BY a.ID");
                while (
              $adr mysql_fetch_array($sql)) { 
                    if(
              $adr['b.grid_id']=="NULL") { 
                        
              $vertragsendestro strtotime($adr['a.enddate']);
                        
              $currentdate strtotime(date("d.m.Y"));
                        echo 
              $adr['b.grid_id'];
                        echo 
              "<tr class=\"grid\">";
                        echo 
              "<td bgcolor=\"#CCCCCC\">"
                        if (
              $vertragsendestro >= $currentdate OR (empty($adr['a.enddate']))) { 
                            echo 
              '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; }
                            if (
              $vertragsendestro $currentdate AND (!empty($adr['a.enddate']))) { 
                                echo 
              '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }
                                echo 
              '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.partner'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.agreement'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.documentdate'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.signaturedatebgr'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.signaturedatepartner'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.startdate'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.enddate'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.cancellationdate'] . '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.info'] . '</td>';
                              echo 
              '<td nowrap="nowrap" bgcolor="#CCCCCC">';
                              
              $id =$adr['id'];
                              
              $handle opendir("/$id/");
                              while((
              $file=readdir($handle))!=false) { 
                                  if(
              $file!="." && $file!="..") { 
                                      echo 
              '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
                                  }
                              }
                              echo 
              '</td>';
                              echo 
              '<td bgcolor="#CCCCCC">' $adr['a.lastchange'] . '</td>';
                              echo 
              '<td nowrap="nowrap" bgcolor="#CCCCCC">';
                              echo 
              "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
                              echo 
              "<a href='index.php?action=del&amp;id=".$adr['id']." onclick=\"return confirm('Are you sure you want to delete?')\"><img src=\"img/table_delete.png\" alt=\"delete\" border=\"0\" /></a>";
                               echo 
              '</tr>';
                    } 
                if(
              $adr['b.grid_id']!="NULL") {
                    
              $vertragsendestro strtotime($adr['b.enddate']);
                    
              $currentdate strtotime(date("d.m.Y"));
                    echo 
              $adr['b.grid_id'];
                    echo 
              "<tr class=\"grid\">";
                    echo 
              "<td bgcolor=\"#FFFFFF\">"
                    if (
              $vertragsendestro >= $currentdate OR (empty($adr['b.enddate']))) { 
                        echo 
              '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; } 
                        if (
              $vertragsendestro $currentdate AND (!empty($adr['b.enddate']))) { 
                            echo 
              '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }
                            echo 
              '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">same</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.agreement'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.documentdate'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.signaturedatebgr'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.signaturedatepartner'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.startdate'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.enddate'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.cancellationdate'] . '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.info'] . '</td>';
                          echo 
              '<td nowrap="nowrap" bgcolor="#FFFFFF">';
                          
              $id =$adr['id'];
                          
              $handle opendir("/$id/");
                          while((
              $file=readdir($handle))!=false) { 
                              if(
              $file!="." && $file!="..") { 
                                  echo 
              '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
                              }
                          }
                          echo 
              '</td>';
                          echo 
              '<td bgcolor="#FFFFFF">' $adr['b.lastchange'] . '</td>';
                          echo 
              '<td nowrap="nowrap" bgcolor="#FFFFFF">';
                          echo 
              "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
                          echo 
              "<a href='index.php?action=del&amp;id=".$adr['id']." onclick=\"return confirm('Are you sure you want to delete?')\"><img src=\"img/table_delete.png\" alt=\"delete\" border=\"0\" /></a>";
                          echo 
              '</tr>';
                }
              }
              ?>
              Angehängte Dateien

              Kommentar


              • #8
                mach bei den echos die "a." und "b." weg

                Und wenn du aus unterschiedlichen Tabellen Spalten selektierst, die den gleichen Namen haben, benenne sie um, zb:
                Code:
                a.info AS info1
                dann hast du die spalte später auch als info1 in deinem array

                falls du nicht weißt wie die felder in deinem array am ende heißen benutze print_r($array)
                War der Beitrag hilfreich? Dann Bedank dich mit einem klick auf .

                Kommentar


                • #9
                  So, nun wird es alles richtig ausgegeben, nur hab ich noch ein kleines Problem, die SQL-Ausgabe gibt den Hauptvertrag zwei mal aus und nicht einmal. (Siehe Bild im Anhang)

                  Wie kann ich die SQL-Ausgabe so machen das, der Hauptvertrag nur einmal ausgegeben wird?


                  PHP-Code:
                  <?php 
                    $sql 
                  mysql_query ("SELECT a.id, a.partner, a.agreement, a.documentdate, a.signaturedatebgr, a.signaturedatepartner, a.startdate, a.enddate, a.cancellationdate, a.info, a.lastchange, b.id1, b.grid_id1, b.agreement1, b.documentdate1, b.signaturedatebgr1, b.signaturedatepartner1, b.startdate1, b.enddate1, b.cancellationdate1, b.info1 FROM grid AS a LEFT JOIN grid_att AS b ON a.id = b.grid_id1 ORDER BY a.ID");
                    while (
                  $adr mysql_fetch_array($sql)) { 
                            
                  $vertragsendestro strtotime($adr['enddate']);
                            
                  $currentdate strtotime(date("d.m.Y"));
                            echo 
                  "<tr class=\"grid\">";
                            echo 
                  "<td bgcolor=\"#CCCCCC\">"
                            if (
                  $vertragsendestro >= $currentdate OR (empty($adr['enddate']))) { 
                                echo 
                  '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; }
                                if (
                  $vertragsendestro $currentdate AND (!empty($adr['enddate']))) { 
                                    echo 
                  '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }
                                    echo 
                  '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['partner'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['agreement'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['documentdate'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['signaturedatebgr'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['signaturedatepartner'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['startdate'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['enddate'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['cancellationdate'] . '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['info'] . '</td>';
                                  echo 
                  '<td nowrap="nowrap" bgcolor="#CCCCCC">';
                                  
                  $id =$adr['id'];
                                  
                  $handle opendir("/$id/");
                                  while((
                  $file=readdir($handle))!=false) { 
                                      if(
                  $file!="." && $file!="..") { 
                                          echo 
                  '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
                                      }
                                  }
                                  echo 
                  '</td>';
                                  echo 
                  '<td bgcolor="#CCCCCC">' $adr['lastchange'] . '</td>';
                                  echo 
                  '<td nowrap="nowrap" bgcolor="#CCCCCC">';
                                  echo 
                  "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
                                  echo 
                  "<a href='index.php?action=del&amp;id=".$adr['id']." onclick=\"return confirm('Are you sure you want to delete?')\"><img src=\"img/table_delete.png\" alt=\"delete\" border=\"0\" /></a>";
                                   echo 
                  '</tr>';
                    if(
                  $adr['grid_id1']!="") {
                        
                  $vertragsendestro strtotime($adr['enddate1']);
                        
                  $currentdate strtotime(date("d.m.Y"));
                        echo 
                  "<tr class=\"grid\">";
                        echo 
                  "<td bgcolor=\"#FFFFFF\">"
                        if (
                  $vertragsendestro >= $currentdate OR (empty($adr['enddate1']))) { 
                            echo 
                  '<img src="img/active.png" alt="agreement active" title="agreement active" border="0" />'; } 
                            if (
                  $vertragsendestro $currentdate AND (!empty($adr['enddate1']))) { 
                                echo 
                  '<img src="img/inactive.png" alt="agreement inactive" title="agreement inactive" border="0" />'; }
                                echo 
                  '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">same</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['agreement1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['documentdate1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['signaturedatebgr1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['signaturedatepartner1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['startdate1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['enddate1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['cancellationdate1'] . '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['info'] . '</td>';
                              echo 
                  '<td nowrap="nowrap" bgcolor="#FFFFFF">';
                              
                  $id =$adr['id1'];
                              
                  $handle opendir("/$id/");
                              while((
                  $file=readdir($handle))!=false) { 
                                  if(
                  $file!="." && $file!="..") { 
                                      echo 
                  '<a href="/contracts/'.$id.'/'.$file.'"><img src="img/attach.png" title="'.$file.'" border=0></a>';
                                  }
                              }
                              echo 
                  '</td>';
                              echo 
                  '<td bgcolor="#FFFFFF">' $adr['lastchange1'] . '</td>';
                              echo 
                  '<td nowrap="nowrap" bgcolor="#FFFFFF">';
                              echo 
                  "<a href=\"javascript:ow('edit.php?action=edit&amp;id=".$adr['id1']."')\"><img src=\"img/table_edit.png\" alt=\"edit\" border=\"0\" /></a>";
                              echo 
                  "<a href='index.php?action=del&amp;id=".$adr['id1']." onclick=\"return confirm('Are you sure you want to delete?')\"><img src=\"img/table_delete.png\" alt=\"delete\" border=\"0\" /></a>";
                              echo 
                  '</tr>';
                    }
                  }
                  ?>
                  Angehängte Dateien

                  Kommentar


                  • #10
                    Problem gelößt, habe die Tabelle grid_att in die grid integriert indem ich mit einer neuen spalte den wert angebe.

                    Danke!

                    Kommentar

                    Lädt...
                    X