Frage

Ich erstelle meine erste PHP / MySQL-Site und möchte Suchergebnisse aus zwei Feldern in meiner einen Tabelle in der Datenbank zurückgeben - Kategorie und Speicherort (Die Tabelle enthält insgesamt 15 Felder, aber nur diese zwei für die Suche erforderlich).

Jede Option verfügt über ein Dropdown-Menü, in dem eine feste Anzahl von Auswahlmöglichkeiten in jedem Feld aufgeführt ist. Beispielsweise gibt es wahrscheinlich 15 Standorte und 7 oder 8 Kategorien.

Ich möchte, dass der Benutzer ein Element aus einem oder beiden Dropdown-Menüs auswählen, auf die Schaltfläche "Suchen" oder "Los" klicken und die Ergebnisse anzeigen kann.

Wie bereits erwähnt, bin ich brandneu in PHP / MySQL. Ich entschuldige mich, wenn meine Frage ein wenig "einfach" ist und ich hoffe, dass mich jemand in die richtige Richtung weisen kann.

Danke Dan

BEARBEITEN:

Brad, Conner, ich habe bisher noch nichts, was die Suchanfragen betrifft. Ich fange gerade an zu recherchieren, wie das geht, daher fehlt in meiner Frage der Code!

Um genauer zu sein, sind die einzigen Felder, aus denen ich Ergebnisse zurückgeben möchte, Standort und Jobkategorie - dies sind zwei Felder von ungefähr 15 in meiner Tabelle, die bereits mit festen Begriffen gefüllt sind - z. B. Standort hat möglicherweise London In Manchester, Leeds und Catagory gibt es möglicherweise Verwaltungs-, Management-, Büro- usw. Funktionen. Der Besucher kann keinen neuen Begriff eingeben, sondern nur aus einem Dropdown-Menü mit vorab festgelegten Elementen auswählen.

Die anderen Felder in meiner Tabelle sind für die Suche nicht relevant (Gehalt, Firma, Kontakt-E-Mail usw.), also ... Ich denke, ich brauche nur zwei Abfragen, und Ergebnisse können auch angezeigt werden, wenn Sie nur eine senden (z. B. kümmert es Sie nicht um den Arbeitsort, sondern nur um die Spezialität. Sie können immer noch alle Ergebnisse finden und entscheiden, ob Sie Lust auf einen Umzug haben.) Ist das besser oder hilfreicher?

Vielen Dank für Ihre bisherige Hilfe. Dan

War es hilfreich?

Lösung

Ein Benutzer gibt eine Suchabfrage ein und Sie möchten die Zeilen aus Ihrer Tabelle auswählen, die diese Abfrage enthalten oder genau mit dieser übereinstimmen.Wenn ja, so etwas wie

Wenn category $search_query enthält

SELECT category, location 
FROM table 
WHERE concat(' ', category, ' ') LIKE '%$search_query%'

Oder wenn es sich um eine exact-Übereinstimmung handelt, würden Sie dies stattdessen für Ihre Bedingung verwenden:

WHERE category = '$search_query'

Ich bin wahrscheinlich offtrack, Sie müssen angeben, wie Brad sagte

Andere Tipps

Dan, Sie müssen Ihre SQL-Anweisung dynamisch erstellen.Unten finden Sie einen einfachen Code, um zu demonstrieren, was ich meine.Achten Sie immer darauf, Benutzerdaten zu löschen, um SQL Inject zu beweisen.

if ( isset($_POST['go']) ){
      $location = $_POST['location'];
      $category = $_POST['category'];
      $sql = "SELECT * FROM table ID IS NOT NULL ";

      if ( $location !="" ){
           $sql .= " AND location = " . $location;
      }

      if ( $category !="" ){
           $sql .= " AND category = " . $category;
      }

}

Ohne Details zu Ihrer Tabellenstruktur und den fraglichen Daten wären die Grundlagen wie folgt:

SELECT ...
FROM ...
WHERE (field1 = $location_option) or (field2 = $category_option)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top