kombinierte Abfrage

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

  • kombinierte Abfrage

    Hallo Leute,

    ich habe folgendes Problem:

    Im nachfolgenden Script kann ich meine MySQL Datenbank abfragen, jedoch ist es hierbei nur möglich nach einem Begriff (entweder Rubrik, oder Bundesland oder Ortschaft) abzufragen.

    Ich möchte jedoch, dass ich kombiniert abfragen kann (z:B. Rubrik X in Bundesland Y).

    Wie muss ich den Code abändern, damit ich zum gewünschten Ergebnis gelange??

    Für Eure Hilfe bin ich Eucxh schon jetzt sehr dankbar.

    Gruss

    Martin


    Code:

    <?

    include("config.php3");
    include("db_connect.php3");

    // Löschen von alten Anzeigen

    // include("expire.php3");

    // Datenbank auslesen

    if ($land == "alle" OR $rubrik == "alle") {
    $abfrage="SELECT anz_id,anz_datum,anz_name,anz_strasse,anz_ort,anz_plz,anz_land,anz_email,anz_page,anz_tel,anz_rubrik ,anz_dauer,anz_biete,anz_suche,anz_toptext,anz_text,anz_mittwoch,anz_freitag,anz_naechste,anz_chiff FROM anzeigen ORDER BY anz_datum DESC";
    }
    else
    {
    $abfrage="SELECT anz_id,anz_datum,anz_name,anz_strasse,anz_ort,anz_plz,anz_land,anz_email,anz_page,anz_tel,anz_rubrik ,anz_dauer,anz_biete,anz_suche,anz_toptext,anz_text,anz_mittwoch,anz_freitag,anz_naechste,anz_chiff FROM anzeigen WHERE anz_ort='$ort' OR anz_land='$land' OR anz_rubrik='$rubrik' ORDER BY anz_datum DESC";
    }

    $ergebnis=mysql_query($abfrage);

    // Ergebnisse ausgeben

    echo "<html>";
    echo "<head>";
    echo "<base target=Hauptteil>";
    echo "</head>";
    echo "<body text=#000000>";
    echo "<center>";
    echo "<table border=0 cellspacing=1 width=550 bordercolor=#000000>";
    echo "<tr><p><font size=-2 color=#000000 face=verdana><b>Hier finden Sie eine Auswahl an Anzeigen.<br>";
    echo "Zur Detailansicht auf mehr... klicken !</font></p></tr>";
    echo "<tr>";
    echo "<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Datum</b></font></td>";
    echo "<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Name</b></font></td>";
    echo "<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Rubrik</b></font></td>";
    echo "<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Kontakt</b></font></td>";
    echo "<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Details</b></font></td>";
    echo "</tr>";

    while(list($anz_id,$anz_datum,$anz_name,$anz_strasse,$anz_ort,$anz_plz,$anz_land,$anz_email,$anz_pag e,$anz_tel,$anz_rubrik,$anz_dauer,$anz_biete,$anz_suche,$anz_toptext,$anz_text,$anz_mittwoch,$anz_fr eitag,$anz_naechste,$anz_chiff)=mysql_fetch_row($ergebnis)) {
    if ($anz_datum){
    ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $anz_datum, $dat);
    }
    echo "<tr align=center>";
    echo "<td align=center><font color=#000000 face=verdana size=-2>".$dat[3].".".$dat[2].".".$dat[1]."</font></td>";
    echo "<td align=center><font color=#000000 face=verdana size=-2>$anz_name</font></td>";
    echo "<td align=center><font color=#000000 face=verdana size=-2>$anz_rubrik</font></td>";
    echo "<td align=center><a href='../script/reply.php3?anz_chiff=$anz_chiff&anz_name=$anz_name' target=details ONCLICK=window.open('','details','scrollbars=yes,width=600,height=480')><img src=../image/mail.gif width=17 height=14 border=0></a></td>";
    echo "<td align=center><font color=#000000 face=verdana size=-2><a href='../script/detail.php3?anz_name=$anz_name&anz_chiff=$anz_chiff' target=details ONCLICK=window.open('','details','scrollbars=yes,width=600,height=480')>mehr ...</a></font></td>";
    echo "</tr>";
    }
    echo "<tr><td><br><br><input type=button value=zurück onClick=history.back()></td></tr>";
    echo "</table><br><br>";
    echo "</center>";
    echo "</body>";
    echo "</html>";

    // Datenbank schliessen

    mysql_close( $link );

    ?>

  • #2
    Hm, wenn ich Dich richtig verstehe möchtest Du die Abfrage eingrenzen.

    Das ginge dann z.B. so:
    WHERE anz_ort='$ort' AND anz_land='$land' AND anz_rubrik='$rubrik'

    Dann bekommst Du nur die die mit $ort und $land und $rubrik übereinstimmen.
    Grüße an alle und weiterhin frohes Arbeiten

    Kommentar


    • #3
      ja, aber

      das ist im Prinzip schon richtig, aber was mache ich, wenn von den 3 Möglichkeiten durch den Anwender nur 2 ausgefüllt werden, also z.B. Ort und Land aber zusätzlich aus allen Rubriken gewählt werden soll????

      Hat jemand die Lösung?

      Kommentar


      • #4
        frag vorher die variablen ab:
        if (!$ort) $ort ='%';
        if (!$rubrik) $rubrik ='%';
        etc.
        das % ist eine sog. wildcard, das heißt in diesem fall trifft alles zu
        gruss
        peter
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar

        Lädt...
        X