Ankündigung

Einklappen
Keine Ankündigung bisher.

Schleifen-Problem beim Vergleich von 2 Arrays

Einklappen

Neue Werbung 2019

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

  • Schleifen-Problem beim Vergleich von 2 Arrays

    Hallo zusammen

    In MySQL führe ich unter anderen 2 Tabellen. Tabelle 1 enthält den Flugplan (mit Angaben über Flugnummer, Abflug, Ziel, Flugdauer etc) und Tabelle 2 dient als Reservationstabelle. Ziel der ganzen Übung ist es, dass man einen von vielen Flügen aus Tabelle 1 auswählen und reservieren kann, so dass dieser am entsprechenden Datum nicht mehr verfügbar ist.

    Aktuell habe ich 2 SELECT-Abfragen: Abfrage 1 holt alle Flüge aus dem Flugplan, welche an diesem Datum geplant sind. Abfrage 2 holt alle Flüge aus der Reservationstabelle, welche für dieses Datum reserviert sind.

    Nun wird mittels WHILE-Schleife eine Tabelle mit den Flugplan-Daten des gewählten Datums ausgegeben (das klappt alles noch). In der letzten Spalte "Reservation" soll der Vermerk "Flug reserviert" erscheinen, wenn in der Reservationstabelle ein Flug mit gleicher Flugnummer am gleichen Datum vorhanden ist. Wenn in der Reservationstabelle kein solcher Eintrag vorhanden ist, soll anstelle des Vermerks ein Link für die Reservation dieses Fluges erscheinen.

    PHP-Code:
    <?php while ($row_paxflights mysql_fetch_assoc($paxflights)) { 
     
         
    $blocktime timediff($row_paxflights['abflug_zeit'], $row_paxflights['ankunft_zeit'], '');
     
         
    ?>
     
              <tr bgcolor="#FFFFFF">
                <td height="15"><b><?php echo $row_paxflights['flugnummer']; ?></b></td>
                <td><?php echo $row_paxflights['abflug']; ?> (<?php echo $row_paxflights['abflug_icao']; ?>)</td>
                <td><?php echo $row_paxflights['ankunft']; ?> (<?php echo $row_paxflights['ankunft_icao']; ?>)</td>
                <td align="center"><?php echo $row_paxflights['abflug_zeit']; ?></td>
                <td align="center"><?php echo $row_paxflights['ankunft_zeit']; ?></td>
                <td align="center"><strong><?php echo $blocktime?></strong></td>
                <td align="center"><?php echo $row_paxflights['abb']; ?> <?php echo $row_paxflights['immatrikulation']; ?></td>
                <td align="center">
     
                <?php if ($row_reservation['flugplanID'] == $row_paxflights['flugplanID']) { echo "Flug reserviert"; } else { echo "[ <a href='/dispatch/pilotsarea/reserveFlight.php?datum=" $_GET['datum'] . "&flight_nr=" $_GET['flight_nr'] . "&a_icao=" $_GET['a_icao'] . "&d_icao=" $_GET['d_icao'] . "&flugzeug=" $_GET['flugzeug'] . "&immatrikulationID=" $_GET['immatrikulationID'] . "&flugplanID=" $row_paxflights['flugplanID'] . "'> reservieren</a> ]"; } ?></td>
     
              </tr>
     
         <?php ?>
    Der oben aufgeführte Code funktionert nur halbwegs. Es wird leider in der letzten Spalte nur in der 1. Zeile der Vermerk "Flug reserviert" angezeigt.

    >> Wie kann ich erreichen, dass eine komplette Flugplan-Tabelle und in der letzten Spalte für JEDEN reservierten Flug an diesem Datum der "Flug reserviert"-Vermerk erscheint? PHP sollte nicht nach dem ersten mal "Flug reserviert" aufhören, Daten aus der Reservationstabelle mit den Flugplandaten zu vergleichen. Es kann nämlich sehrwohl an diesem Tag mehr als nur ein Flug reserviert sein.

    Vielen Dank für jegliche Tipps. Wenn ihr Printscreens oder mehr Code benötigt, so lasst es mich bitte wissen. Danke.

  • #2
    Per Datenbank JOIN
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      hi nikosch77-new

      das würde beide tabellen zusammenführen. meiner meinung nach könnte ich damit aber nur herausfinden, welche flüge reserviert sind (ich müsste ja zutreffende JOIN-Bedingungen angeben). Dann würden aber alle freien Flüge nicht mehr angezeigt, oder? Das wäre ja eigentlich nicht das Ziel, es sollten Alle Flüge angezeigt werden und nur bei den reservierten Flügen erscheint in der letzten Spalte anstatt der Link zur Reservation einfach der Vermerk "Flug reserviert". ist sowas machbar

      Kommentar


      • #4
        Ja. Es gibt verschiedene JOIN Typen. Auch die Reihenfolge der Tabellen ist u.U. entscheidend.

        Btw. Heißt es nicht "Reservierung"? Reservation klingt nach Indianern oder bestenfalls einem Fall für die Zwiebelfisch Kolumne.
        [COLOR="#F5F5FF"]--[/COLOR]
        [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
        [COLOR="#F5F5FF"]
        --[/COLOR]

        Kommentar

        Lädt...
        X