ERLEDIGT
NEIN
NEIN
ANTWORTEN
21
21
ZUGRIFFE
319
319
EMPFEHLEN
-
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:
Hiermal das Foto wie es mom aussieht: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> ";
}
print " <tr bgcolor=\"$color\">\n";
print " <td>{$gebucht}</td>\n";
print " <td>{$dataset['dep_time']}</td>\n";
print " <td>{$dataset['flughname']} </td>\n";
print " <td>{$dataset['arr_time']} </td>\n";
print " <td>{$dataset['days']} </td>\n";
print " <td>{$dataset['via']} </td>\n";
print " <td>$entfernung_rund nm</td>\n";
print " <td>{$dataset['company']} "."</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> </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/Beweis2.jpg
-
15.11.11 11:47 #2
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!
-
Genau sowas währe gut nur wie mach ich das? Genau da stehe ich auf der Leitung
-
Variante mit einem Flag.
Dito mit Zähler.PHP-Code:$flag = true;
while(...){
if($flag){
echo "We are Sorry, but today we don`t offer any Flights";
$flag = false;
}
}
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
-
Es geht ja nicht um das "Sorry" sondern "Allready booked" und da habe ich keinen schimmer wie ich das da zusätzlich reinzwingen soll
-
15.11.11 14:08 #6
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!
-
@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
-
16.11.11 09:27 #8
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!
-
Also das geht zwar, aber dafür werden dann weitere Flüge zum buchen angeboten, und das soll ja nicht passieren
http://www.americanblue-va.com/pictures/Beweis3.jpgPHP-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> ";
}
print " <tr bgcolor=\"$color\">\n";
print " <td>{$gebucht}</td>\n";
print " <td>{$dataset['dep_time']}</td>\n";
print " <td>{$dataset['flughname']} </td>\n";
print " <td>{$dataset['arr_time']} </td>\n";
print " <td>{$dataset['days']} </td>\n";
print " <td>{$dataset['via']} </td>\n";
print " <td>$entfernung_rund nm</td>\n";
print " <td>{$dataset['company']} "."</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> </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
?>
-
16.11.11 13:24 #10Kann 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 ){
PHP-Code:if ($dataset['aktueller_Flug'] != '' && $flag === true ){
Die Schweine von heute sind unsere Schnitzel von morgen!
-
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!
-
16.11.11 13:38 #12
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!
-
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
-
16.11.11 14:04 #14
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!
-
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
-
Probleme mit DataSet.Update, DataSet.Merge usw.
Von AAF im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 07.01.08, 17:17 -
Störende Begrenzung
Von Tigger007 im Forum 3D Studio MaxAntworten: 6Letzter Beitrag: 21.12.07, 00:11 -
HDD begrenzung
Von Private Joker im Forum HardwareAntworten: 3Letzter Beitrag: 03.03.06, 11:25 -
Begrenzung WHERE IN
Von Fabia im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 23.11.04, 11:33 -
Begrenzung des MC
Von Burnymc im Forum Flash PlattformAntworten: 2Letzter Beitrag: 12.06.04, 09:02





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren