Ergebnis einer Suchanfrage anzeigen/"verstecken"

BadBoy227

Mitglied
Hi

ich bin grad am quizzen mit einem Suchformular. Dies ist mein erstes Projekt das hauptsächlich auf php und mysql basiert vondaher bitte ich um nachsicht^^.
So jetzt zu meinem Problem bzw. zur beschreibung.

Vorneweg: Es handelt sich um eine Page für eine fiktive Airline^^

Der Benutzer kann auf der MainPage sich zwischen Hin und Rück und One Way entscheiden. Die Codes für die Radiobuttons sind folgende:

PHP:
<td>
        Hin- und Rückflug:
        <input type="radio" id="Flugart" name="Flugart" value="Hin und Rueck" onClick="activ=1; document.form.arrday;" checked>
    </td>
<tr>
<tr>
    <td>
        Nur Hinflug:
        <input type="radio" id="Flugart" name="Flugart" value="Nur Hin" onClick="activ=0; document.form.arrday;">
    </td>

So das ist auf der einen Seite bzw. das Interface

Der Code für die Suche ist folgender:
PHP:
  <?if ($_GET["Flugart"]!="Hin und Rueck")
				{
					//Hinflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\") AND ";
					$strSQL .="(Klasse=\"" . $_GET["class"] . "\")) ";
					$strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}
    {
					//Rückflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Arrival"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Depature"] . "\") AND ";
					$strSQL .="(Klasse=\"" . $_GET["class"] . "\")) ";
					$strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["arrday"] . $_GET["arrmonth"] .
                                                        " von " . $_GET["Arrival"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["arrday"] . $_GET["arrmonth"] .
                                                        " von " . $_GET["Arrival"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}
    ?> </p><p>
    <?if ($_GET["Flugart"]!="Nur Hin")
    				{
					//Hinflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\") AND ";
					$strSQL .="(Klasse=\"" . $_GET["class"] . "\")) ";
					$strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}
		?>

So jetzt zu meinem Prob:
ICh möchte das wenn Nur Hin ausgewählt wird nur ein Flug angzeigt wird und bei Hin und Rueck so wie es momentan ist. Ich dachte mir als Lösung den Befehl
PHP:
$strFlugart="AND";
					if (@$optFlugart=="Hin und Rueck")
					{
						$strFlugart="OR";
					}
					else
					{
						$strFlugart="AND";
					}
					if ($strFlugart=="AND")
					{

aber ich weiß nicht wie ich es umwandeln sollte bzw. wo ich es einfügen sollte.

So bei Fragen bitte fragen und vielen Dank schonmal für die Hilfe und das lesen des Codes^^

Liebe Grüße
BB
 
Hallo,

da ich dein Problem leider nicht ganz verstanden habe, kann ich dir auch leider keine richtige Antwort geben!

Aber soweit ich das verstanden habe, willst du, dass wenn Nur Hin ausgewählt wurde, dass dann nur ein Flug ausgegeben wird.
Aber ich sehe dabei dein Problem nicht :rolleyes:
Du kannst doch einfach nur das erste Ergebnis ausgeben lassen.
Oder mit "LIMIT 0, 1" am Ende der MySQL-Query nur einen Datensatz zurückliefern lassen.

Falls du etwas anderes meinst, solltest du mal dein Problem etwas genauer beschreiben ;)

MfG
Fabsch
 
Hi
erstmal vielen dank für die Antwort ;)

joa so meine ich das wenn man im Interface "Nur Hin" auswählt das dann die Ausgabe der Suchanfrage nur die Hinflug suche enthält nicht aber die rückflug suche wie es momentan der Fall ist^^
Weil zur Zeit ist es einfach so, dass immer beide ausgegeben werden, egal was ausgesucht wurde.
Daraufhin hab ich das script so verändert wie es im Thread oben steht^^ vorher gab es den
PHP:
<?if ($_GET["Flugart"]!="Nur Hin")  ....
Teil noch nicht, jetzt wird das Ergbeniss einfach umgedreht und trotzdem werden mir beide Flüge angezeigt, leider :(
Und das is mein Problem weil ich als Anfänger das nicht umsetzen kann und mit deinem Befehl LIMIT kann ich irgendwie nichts anfangen. Wäre cool wenn du mir da ein wenig nachhilfe geben könntest bzw. kurz zeigst wo ich den einfügen müsste^^. Wäre echt genial wenn du das mal posten könntest. Aber trotzdem schonmal vielen Dank für die Antwort :)^^
 
ok ich hab jetzt nochmal einwenig gegooglet was das LIMIT Befehl angeht, ich denke dieser wirdmir nicht weiterhelfen da ich ja doch eine ganze Menge Flüge anzeigen will vll helfen diese beiden screenshots:

Bild 1ist die Suchanfrage wo beide Flüge hin rück angzeigt werden( Werte sind zwar noch falsch, aber es eght erstmal um das Prinzip^^)

Und Bild 2 soll das Ergebnis sein das raus kommen sollte wenn nur Hinflug ausgewählt wurde.
Das Ergebnis ist aber immernoch Bild 1

Die bunten Farben sind nur hilfen für mich xD wird aber noch geändert^^

lG
und Danke an alle die mir helfen können das Problem zulösen :)
 

Anhänge

  • bild1.jpg
    bild1.jpg
    85,4 KB · Aufrufe: 14
  • bild2.jpg
    bild2.jpg
    45,9 KB · Aufrufe: 13
Hallo,

mir ist gerade der "Fehler" im oben geposteten Script aufgefallen:
So ist es klar, dass das Ergebnis umgedreht wird (also wenn Hin und Rück ausgewählt, dann nur Hin, und wenn Nur Hin ausgewählt, dann Hin und Rück).
Das hier nämlich:
PHP:
$_GET["Flugart"]!="Nur Hin"
gibt true zurück, wenn die Flugart NICHT "Nur Hin" ist!
Also hier, wenn die Flugart "Hin und Rück" ist, also falsch herum!

Hier einfach mal das verbesserte Script: (das mit dem Limit brauchst du hier nicht! ich habe dann den Beitrag falsch verstanden :D )
PHP:
<?php
if ($_GET["Flugart"] == "Hin und Rueck") 
                { 
                    //Hinflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\") AND "; 
                    $strSQL .="(Klasse=\"" . $_GET["class"] . "\")) "; 
                    $strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
; 
                } 
    { 
                    //Rückflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Arrival"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Depature"] . "\") AND "; 
                    $strSQL .="(Klasse=\"" . $_GET["class"] . "\")) "; 
                    $strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["arrday"] . $_GET["arrmonth"] . 
                                                        " von " . $_GET["Arrival"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["arrday"] . $_GET["arrmonth"] . 
                                                        " von " . $_GET["Arrival"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
; 
                } 
    //das solltest du ganz nach unten setzen!
    // </p><p> 
    //EDIT: die PHP-End-Tags kann man in Kommentaren nicht machen, hab die rausgenommen
    
    else if ($_GET["Flugart"] == "Nur Hin") 
                    { 
                    //Hinflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\") AND "; 
                    $strSQL .="(Klasse=\"" . $_GET["class"] . "\")) "; 
                    $strSQL .=" ORDER BY Reiseziel,Abflughafen,Klasse;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
; 
                } 
       //hier nun den neuen Absatz einfügen!
        ?>
</p><p>

Ich hoffe ich konnte helfen :D

MfG
Fabsch
 
Zuletzt bearbeitet:
also müsste der code jetzt so aussehen:
PHP:
<?
                     if ($_GET["Flugart"] == "Hin und Rueck")
				{
					//Hinflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\"))";
					$strSQL .=" ORDER BY Reiseziel,Abflughafen;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}
                                {
        					//Rückflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Arrival"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Depature"] . "\")) ";
     					$strSQL .=" ORDER BY Reiseziel,Abflughafen;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["arrday"] . $_GET["arrmonth"] .
                                                        " von " . $_GET["Arrival"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["arrday"] . $_GET["arrmonth"] .
                                                        " von " . $_GET["Arrival"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}

                 else if ($_GET["Flugart"] == "Nur Hin")
    				{
					//Hinflug SUCHE

					$strSQL="SELECT * FROM flugplan WHERE (" ;
					$strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ;
					$strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\")) ";
     					$strSQL .=" ORDER BY Reiseziel,Abflughafen;";
					$lngAnz=getAnzahl($strSQL);
					if ($lngAnz==0)
					{
						echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" .
							" die Ihrer Suchanfrage entsprechen!</p>";
					}
                                        if ($lngAnz==1)
     					{
						echo "<p class=\"erganzahl\">Es konnte " . $lngAnz .
							" Flug gefunden werden, " .
							" welcher am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegt</p>";
					}
					else
					{
						echo "<p class=\"erganzahl\">Es konnten " . $lngAnz .
							" Flüge gefunden werden, " .
							" welche am " . $_GET["depday"] . $_GET["depmonth"] .
                                                        " von " . $_GET["Depature"] . " abfliegen</p>";
					}
					echo ausgeben($Con, $strSQL, false,false);
;
				}
                                ?>

Ich stelle mich grad ein wenig dumm an :suspekt: zumindest bekomme ich dann ein Fehler in line 92 also in dem neu eingefügtem else Befehl. *peinlich+rot werd*

lG
BadBoy227
 
Hallo,

ich würde auch da diesen 2. Semikolon entfernen ;)
PHP:
echo ausgeben($Con, $strSQL, false,false); 
;
Und das vor dem else if und ganz am Schluss ;)

MfG
Fabsch
 
hey die ; haben nicht viel Einfluss auf das ganze habe sie eben entfernt aber der Fehler:
Parse error: parse error in C:\Programme\Browser\Neuer Ordner\test\Page\suche.php on line 92 ernscheint immer noch. Der Fehler muss dann wohl in diesem Code stecken
PHP:
else if ($_GET["Flugart"] == "Nur Hin")
Aber danke :)
 
Hallo,

hab grad den Code in meinen Editor eingefügt :D
Der hat das else unterringelt.
Aber ist ja auch klar; ich habe nicht gesehen, dass du da:
PHP:
 if ($_GET["Flugart"] == "Hin und Rueck")
{
      //Hinflug SUCHE[...]
}
{
      //Rückflug SUCHE
}
das so machst :D


Aber so sollte es nun gehen:
PHP:
<? 
                     if ($_GET["Flugart"] == "Hin und Rueck") 
                { 
                    //Hinflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\"))"; 
                    $strSQL .=" ORDER BY Reiseziel,Abflughafen;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
                    
                    //Rückflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Arrival"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Depature"] . "\")) "; 
                         $strSQL .=" ORDER BY Reiseziel,Abflughafen;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["arrday"] . $_GET["arrmonth"] . 
                                                        " von " . $_GET["Arrival"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["arrday"] . $_GET["arrmonth"] . 
                                                        " von " . $_GET["Arrival"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
                } 

                 else if ($_GET["Flugart"] == "Nur Hin") 
                    { 
                    //Hinflug SUCHE 

                    $strSQL="SELECT * FROM flugplan WHERE (" ; 
                    $strSQL .="(Abflughafen=\"" . $_GET["Depature"] . "\") AND " ; 
                    $strSQL .="(Reiseziel=\"" . $_GET["Arrival"] . "\")) "; 
                         $strSQL .=" ORDER BY Reiseziel,Abflughafen;"; 
                    $lngAnz=getAnzahl($strSQL); 
                    if ($lngAnz==0) 
                    { 
                        echo "<p class=\"erganzahl\">Leider konnten keine Ergebnis gefunden werden" . 
                            " die Ihrer Suchanfrage entsprechen!</p>"; 
                    } 
                                        if ($lngAnz==1) 
                         { 
                        echo "<p class=\"erganzahl\">Es konnte " . $lngAnz . 
                            " Flug gefunden werden, " . 
                            " welcher am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegt</p>"; 
                    } 
                    else 
                    { 
                        echo "<p class=\"erganzahl\">Es konnten " . $lngAnz . 
                            " Flüge gefunden werden, " . 
                            " welche am " . $_GET["depday"] . $_GET["depmonth"] . 
                                                        " von " . $_GET["Depature"] . " abfliegen</p>"; 
                    } 
                    echo ausgeben($Con, $strSQL, false,false); 
                } 
                                ?>

MfG
Fabsch
 
Zurück