tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
21
ZUGRIFFE
319
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Hallo Gemeinde,

    ich habe vor einiger Zeit ein Skript geschrieben was einen Flugplan mit samt seinen Flügen anzeigen soll. Dies funtkioniert auch ganz einwandfrei. Nun hat aber dieses Skript die Zusatzfunktion, das keine Flüge mehr angezeigt werden, sobald man selber bereits einen gebucht hat. Auch das funktioniert, in gewissser Maßen. Man bekommt auch den Satz angezeigt "You allready booked a flight", leider bekommt man diesen Satz so oft, wie es auch Flüge ab diesem Flughafen in der DB gibt. Ich habe es bereits mit Group probiert, brachte aber wie erwartet keine Besserung.

    Kann man den Dataset eventuell limitieren, der dieses Satz druckt?

    Hier mal das Skript:
    PHP-Code:
    <?PHP
    $abfrage 
    "SELECT
                         `piloten`.`letzter_standort` , 
                         `piloten`.`aktueller_Flug` , 
                         `Flugplan`.`flughafenid1` , 
                         `Flugplan`.`dep_time` , 
                         `Flugplan`.`flughafenid2` , 
                         `Flugplan`.`arr_time` , 
                         `Flugplan`.`flugnummer`,
                         `Flugplan`.`days`,
                         `Flugplan`.`company`,
                         `Flugplan`.`registrierung` ,
                         `Flugplan`.`flugzeug_id`,
                         `Flugplan`.`gebucht`, 
                         `Flughafen`.`flughafenid`,
                         `Flughafen`.`flughname`
                FROM 
                         piloten, 
                         Flugplan,
                         Flughafen
                WHERE   
                         (pilot_id = '" 
    mysql_real_escape_string($pilot_id) . "') 
                And
                         (`Flugplan`.`flughafenid2` = `Flughafen`.`flughafenid`)
                AND
                         (`Flugplan`.`comment` = '')
                AND
                         (`piloten`.`letzter_standort` = `Flugplan`.`flughafenid1`)
                AND
                          (`Flugplan`.`days` LIKE '%
    $datum%')
                         
                ORDER BY 
                        `Flugplan`.`dep_time`  ASC LIMIT 0 , 1000;"
    ;
    $ergebnis mysql_query($abfrage) or die ("MySQL-Error: " mysql_error());

    ?>
    <table WIDTH="99%" border="0" align="center" "."cellpadding="1" cellspacing="1" bgcolor="#666666" class="tableLine">
        <tr>
            <th>Flugnummer</th>
            <th>Abflugzeit</th>
            <th>Zielflughafen</th>
            <th>Ankunftszeit</th>
            <th>Flugtage</th>
            <th>Stops</th>
            <th>Entfernung</th>
            <th>Company</th>
            <th>Info</th>
        </tr>
    <?php 
     $colchange 
    1;
        while (
    $dataset mysql_fetch_array($ergebnis)){ 
    if ((
    $ergebnis)!=0){

        if (
    $dataset['aktueller_Flug'] != ''){
            
              {
            print 
    "<tr bgcolor=\"#999999\" align=\"center\">";
            print 
    "<td></td><td></td><td></td><td>You allready booked a flight</td><td></td><td></td><td></td><td></td><td></td></tr>";
           

        }
        print 
    "</td></tr>\n";
                    
        }else{    
            if(
    $dataset['gebucht'] == 'B'){
                 
    $gebucht '*fully booked*';
        }
            elseif(
    $dataset['gebucht'] == 'C'){
                     
    $gebucht '*Flight canceled*';
        }    
            else 
        {
                  
    $gebucht="<a href='FPS_buchung_flug.php?flugnummer={$dataset['flugnummer']}'>{$dataset['flugnummer']}</a>&nbsp";
        }
        
     print 
    "    <tr bgcolor=\"$color\">\n";
     print 
    "        <td>{$gebucht}</td>\n";
     print 
    "        <td>{$dataset['dep_time']}</td>\n";
     print 
    "        <td>{$dataset['flughname']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['arr_time']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['days']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['via']}&nbsp;</td>\n";
     print 
    "        <td>$entfernung_rund nm</td>\n";
     print 
    "        <td>{$dataset['company']}&nbsp;"."</td>\n";
     print 
    "        <td align=\"center\"><a href='FPS_buchung_fluginfo.php?flugnummer={$dataset['flugnummer']}'><img src='http://www.americanblue-va.com/pictures/info.gif' 
    alt=\"Info\"/></a>&nbsp</td>\n"
    ;
     print 
    "    </tr>\n";
            
            
    // ++ hinter der Variablen bewrikt das immer 1 dazugezählt wird. in einer schleife passiert das bei jedem durchgang.
            
    $colchange++;
        }
        }
    else 

    {
        print 
    "    <tr bgcolor=\"$color\">\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td>We are Sorry, but today we don`t offer any Flights</td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "    </tr>\n";
        }

        
     }
    // while ende
        
    ?>
    Hiermal das Foto wie es mom aussieht:
    http://www.americanblue-va.com/pictures/Beweis2.jpg
     

  2. #2
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Du könntest dir einen Zähler einbauen, der nur beim 1. Set die Meldung ausgibt.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  3. #3
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Genau sowas währe gut nur wie mach ich das? Genau da stehe ich auf der Leitung
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Variante mit einem Flag.
    PHP-Code:
    $flag true;
    while(...){
        if(
    $flag){
            echo 
    "We are Sorry, but today we don`t offer any Flights";
            
    $flag false;
        }

    Dito mit Zähler.
    PHP-Code:
    $counter 0;
    while(...){
        if(++
    $counter == 1){
            echo 
    "We are Sorry, but today we don`t offer any Flights";
        }

     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Es geht ja nicht um das "Sorry" sondern "Allready booked" und da habe ich keinen schimmer wie ich das da zusätzlich reinzwingen soll
     

  6. #6
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Ich versteh ehrlich gesagt nicht was du meinst.
    Kannst du es bitte nochmal richtig erklären? in deinem 1. Post hast du geschrieben das diese Meldung nur einmal in dieser Tabelle angezeigt werden soll. Dies ist mit der oben genannten Lösung möglich.
    Wenn du jedoch was anderes meinst, dann erklär es bitte noch mal ausführlich.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  7. #7
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    @Maniac du hattest es richtig verstanden mein letzter Beitrag galt Yaslaw.

    Aber auf dich noch mal bezogen, wie kann ich das in den betroffenen fataset einauen
     

  8. #8
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Unter deiner Variable "$colchange" erstellst du das Flag wie yaslaw beschrieben. Die Bedingung kommt mit in die WHILE-Schleife und dein Text der ausgfegeben wird kommt in diese Bedingung....
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  9. #9
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Also das geht zwar, aber dafür werden dann weitere Flüge zum buchen angeboten, und das soll ja nicht passieren

    PHP-Code:
    <?php 
     $colchange 
    1;
     
    $flag true;

        while (
    $dataset mysql_fetch_array($ergebnis)){ // <--- Klammerfehler, hier gehört die klammer auf

            
            // modulo ob gerade oder ungerade
            
    if ($colchange 2) {
                
    $color "#B6B6B6";
            } else {
                
    $color "#999";
            }
            
    $counter 0;        
            
            
    if ((
    $ergebnis)!=0){
        if (
    $dataset['aktueller_Flug'] != '' $flag ){
             
    $flag false;
               {
            print 
    "<tr bgcolor=\"#999999\" align=\"center\">";
            print 
    "<td></td><td></td><td></td><td>You allready booked a flight</td><td></td><td></td><td></td><td></td><td></td></tr>";
          
        }
        print 
    "</td></tr>\n";
                    
        }else{    
            if(
    $dataset['gebucht'] == 'B'){
                 
    $gebucht '*fully booked*';
        }
            elseif(
    $dataset['gebucht'] == 'C'){
                     
    $gebucht '*Flight canceled*';
        }    
            else 
        {
                  
    $gebucht="<a href='FPS_buchung_flug.php?flugnummer={$dataset['flugnummer']}'>{$dataset['flugnummer']}</a>&nbsp";
        }
        
     print 
    "    <tr bgcolor=\"$color\">\n";
     print 
    "        <td>{$gebucht}</td>\n";
     print 
    "        <td>{$dataset['dep_time']}</td>\n";
     print 
    "        <td>{$dataset['flughname']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['arr_time']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['days']}&nbsp;</td>\n";
     print 
    "        <td>{$dataset['via']}&nbsp;</td>\n";
     print 
    "        <td>$entfernung_rund nm</td>\n";
     print 
    "        <td>{$dataset['company']}&nbsp;"."</td>\n";
     print 
    "        <td align=\"center\"><a href='FPS_buchung_fluginfo.php?flugnummer={$dataset['flugnummer']}'><img src='http://www.americanblue-va.com/pictures/info.gif' 
    alt=\"Info\"/></a>&nbsp</td>\n"
    ;
     print 
    "    </tr>\n";
            
            
    // ++ hinter der Variablen bewrikt das immer 1 dazugezählt wird. in einer schleife passiert das bei jedem durchgang.
            
    $colchange++;
        }
        }
    else 

    {
        print 
    "    <tr bgcolor=\"$color\">\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td>We are Sorry, but today we don`t offer any Flights</td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "        <td></td>\n";
        print 
    "    </tr>\n";
        }

        
     }
    // while ende
        
    ?>
    http://www.americanblue-va.com/pictures/Beweis3.jpg
     

  10. #10
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    PHP-Code:
     if ($dataset['aktueller_Flug'] != '' $flag ){ 
    Kann nicht funktionieren, wundert mich das es keinen Fehler oder eine Notice wirft. Kann sein das hier die Referenz von $flag nur gesetzt wird. Wenn dann muss es so aussehen:
    PHP-Code:
     if ($dataset['aktueller_Flug'] != '' && $flag === true ){ 
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  11. #11
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Ich habe das so ersetzt und den Failure Report aktiviert. Er wirft keine Fehler aber an der Anzeige wie in meinem letzten Bild ändert es auch leider nichts!
     

  12. #12
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Dann zeichne doch bitte mal in dein Bild ein wie du es genau haben willst, ich habs denk ich immernoch nicht verstanden.....
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  13. #13
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Wenn ein Flug gebucht wurde, soll es wie folgt aussehen. Das tat es von vornerein,nur das diese Zeile so oft wiederholt wurde, wie es Datensätze ab diesem Flughafen gab, das möchte ich einfach nur auf eine Zeile reduzieren.

    http://www.americanblue-va.com/pictures/Beweis3.1.jpg
     

  14. #14
    Avatar von Maniac
    Maniac Maniac ist offline Mitglied Smaragd
    Registriert seit
    Apr 2007
    Ort
    Augsburg/Gersthofen (Bayern)
    Beiträge
    1.204
    Na das ging aus deinen Posts nicht hervor. Das kannst du im SQL-Select machen.
    Wieso hast du eigentlich in deinem SELECT so viele Bedingungen? Würde da nicht ein einfacheres SELECT reichen und dort entwerder mit "COUNT()" die anzahl der Buchungen zählen, oder mit "LIMIT 1" nur einen Datensatz auswählen.
     
    Die Schweine von heute sind unsere Schnitzel von morgen!

  15. #15
    Malchor Malchor ist offline Mitglied Gold
    Registriert seit
    Nov 2010
    Beiträge
    146
    Das hat mehrere Hintergründe mit den Bedingungen, die mit dem System zusammenhängen. Wenn ich jetzt counten lasse, wiederholt er den Text nicht trotzdem dann immer wieder?
     

Ähnliche Themen

  1. Probleme mit DataSet.Update, DataSet.Merge usw.
    Von AAF im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 07.01.08, 17:17
  2. Störende Begrenzung
    Von Tigger007 im Forum 3D Studio Max
    Antworten: 6
    Letzter Beitrag: 21.12.07, 00:11
  3. HDD begrenzung
    Von Private Joker im Forum Hardware
    Antworten: 3
    Letzter Beitrag: 03.03.06, 11:25
  4. Begrenzung WHERE IN
    Von Fabia im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 23.11.04, 11:33
  5. Begrenzung des MC
    Von Burnymc im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 12.06.04, 09:02