kostenloser Webspace werbefrei: lima-city


MYSQL abfrage wo steckt der Fehler

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    r***a

    Die Variablen ausschluss und ortsuche wird via http_get_vars ein wert zugewiesen entweder 1 oder 0 bei ausschluss oder halt ortsuche halt der ortsname...

    ziel soll es sein, alle objekte auszugeben, die nicht in wetro bautzen und uhyst liegen, wenn die variable ausschluss = 1 ist.

    An sonnsten soll halt je nach inhalt der variable ortsuche die jeweiligen daten ausgegeben werden.

    if ($ausschluss == "1")
    {
    $ausschluss1 = "Wetro";
    $ausschluss2 = "Bautzen";
    $ausschluss3 = "Uhyst";
    }
    $wohnung = "SELECT
    wohnungsart
    FROM
    mietobjekte
    WHERE
    ort = '$ortsuche'
    AND
    ort != '$ausschluss1'
    AND
    ort != '$ausschluss2'
    AND
    ort != '$ausschluss3'";

    ich denk mal mein problem ist das != oder?

    Besten dank im voraus
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 0******a

    Also an der SQL-Abfrage selber ist nichts auszusetzen, solange $ausschluss auf 1 gesetzt ist. Welche Werte nehmen denn $ausschluss1 - $ausschluss3 an f?r den Fall, dass $ausschluss auf 0 gesetzt ist? Meiner Meinung nach solltest du das eh lieber so machen:
    #############################
    if ($ausschluss == "1")
    {
       // $ausschluss1 - $ausschluss3 bef?llen
       // SQL-Abfrage festlegen, so wie du sie schon hast
    }
    else
    {
       // SQL-Abfrage ohne $ausschluss1 - $ausschluss3 festlegen
    }

    // hier dann die erstellte SQL-Abfrage mit mysql_query() ausf?hren
    #############################

    In deinem Beispiel sollte eigentlich keine Fehlermeldung auftauchen, solange $ausschluss auf 1 gesetzt ist. Ist $ausschluss != 1 k?nnte ein Fehler auftreten, je nachdem, was du da genau machst.
    Leider hast du nicht geschrieben, wo genau dein Problem liegt. Bekommst du eine Fehlermeldung oder bekommst du unerwartete Ergebnisse? Oder was meinst du sonst mit "Problem"?
  4. Autor dieses Themas

    r***a

    Fehlermeldung gibbets garkeinte es gibt aber auch leider keine Werte sprich er findet nix obwohl genug da is an Daten.

    ich weise ausschluss1-3 von vornherein 0 zu, somit d?rfte ja alles angezeigt werden, denn kein Ort heisst ja 0 daher wird auch keiner ausgeschlossen...

    kann es daran liegen das ich wenn ich ausschluss 1 setze ortsuche * setze...das sich das gegenseitig blockiert,

    einerseits weise ich ihn alles alles auszugeben wo ort = * is sprich alles eigentlich und danach sag ich aber nich wetro bautzen uhyst..


    och mennooooo
  5. 0******a

    Wieso setzt du Ort bzw. $ortsuche auf "*"?! Damit findest du nur alle Orte, die "*" heissen. Und so heisst ja wohl keiner. Kein Wunder, dass du keine Daten bekommst ;-)
    Falls du mit * einen Platzhalter benutzen wolltest, dann musst du das Schl?sselwort LIKE und als Platzhalter "%" statt "*" benutzen.
  6. Autor dieses Themas

    r***a

    $wohnung = "SELECT
    wohnungsart
    FROM
    mietobjekte
    WHERE
    ort LIKE '$ortsuche'
    AND
    ort != '$ausschluss1'
    AND
    ort != '$ausschluss2'
    AND
    ort != '$ausschluss3'";

    so habsch nun den quelltext....

    $wohnung = "SELECT
    wohnungsart
    FROM
    mietobjekte
    WHERE
    ort LIKE '%'
    AND
    ort != 'Wetro'
    AND
    ort != 'Bautzen'
    AND
    ort != 'Uhyst'";

    sprich dann stehts so da...

    aber funnzt immernoch nicht
  7. 0******a

    if ($ausschluss == "1")
    {
      $ausschluss1 = "Wetro";
      $ausschluss2 = "Bautzen";
      $ausschluss3 = "Uhyst";
      $query = "select wohnungsart from mietobjekte where ort != '$ausschluss1' and
    ort != '$ausschluss2' and ort != '$ausschluss3'";
    }
    else
    {
      $query = "select wohnungsart from mietobjekte where ort like 'a%'";
    }

    mysql_query($query...


    Probier es mal in der Art. In der fettgeschrieben Zeile werden alle Orte mit dem Anfangsbuchstaben a rausgesucht. Willst du gar keinen Filter setzen, dann lass die komplette where-Klausel weg.
  8. Hm != gibts bei MySQL glaube ich nicht !

    Du kannst aber NOT LIKE Verwenden

    $wohnung = "SELECT
    wohnungsart
    FROM
    mietobjekte
    WHERE
    ort LIKE '$ortsuche'
    AND ort NOT LIKE '$ausschluss1' AND ort NOT LIKE '$ausschluss2'
    AND ort NOT LIKE '$ausschluss3'";


    gruss free4you

  9. 0******a

    free4you schrieb:
    Hm != gibts bei MySQL glaube ich nicht !

    Doch gibt es. Wenn ich mich nicht irre, dann ist es in SQL nicht definiert, wird von MySQL aber trotzdem unterst?tzt.
  10. e*****************t

    Jup, den Befehl != gibt es. Er ist gleichbedeutend mit dem Befehl <> und bedeutet Ungleich bzw. Nicht Gleich.

    Vielleicht gibt es einen Fehler bei der ?bertragung der Variablen?
    Mach am Besten mal eine Ausgabe von $wohnung, also deiner MySql-Abfrage vor dem mysql_query() Befehl. Wenn der Befehl fehlerhaft ist liegt es daran.
  11. Autor dieses Themas

    r***a

    alles probiert nix hat gefunzelt....

    ich vermute mal das es daran liegt das ich ja ' ' bei der ortssuche hatte und wenn ich % als platzhalter nutze ernicht den platzhalter sucht sondern so zusagen /% sucht....

    naja nu habsch ne zweite abfragescript extra nur darauf zugeschnitten, zwar net sch?n und komfortabel aber naja es funnzt
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!