Ankündigung

Einklappen
Keine Ankündigung bisher.

DropDown Filter

Einklappen

Neue Werbung 2019

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

  • DropDown Filter

    Hallo,

    ich bin dabei einen Filter für meine Datensätze einzurichten.
    Leider fehlt mir an der einen oder anderen Stelle das nötige Now How.

    Ich habe drei dropdown Felder die meine Datensätze filtern sollen. Am besten jeder für sich und alle zusammen.

    Leider flupt es nicht ganz. Zudem wer es super wenn mir noch gesagt wird wieviele Datensätze da sind.

    Würde mich freuen wenn sich das hier jemand mal anschaut.

    PHP-Code:
    <!DOCTYPE html>
    <html lang="de">

    <head>
    <meta charset="utf-8">
    <title>Daten aus einer Datenbank abrufen</title>
    </head>
    <body>


    <div>
    <form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
    <select name="zielgruppe">
    <option value="">Alle</option>
    <option value="1">Kinder (0-6)</option>
    <option value="2">Kinder (6-10)</option>
    <option value="3">Kinder (10-14)</option>
    <option value="4">Jugendliche (14-1</option>
    <option value="5">Erwachsene</option>
    <option value="6">Senior*innen</option>
    <option value="7">Familien</option>
    <option value="8">geflüchtete Menschen</option>
    </select>

    <select name="schwerpunkt">
    <option value="">Alle</option>
    <option value="1">Beratung</option>
    <option value="2">Betreuung</option>
    <option value="3">Bewegung</option>
    <option value="4">Förderung/ Bildung</option>
    <option value="5">Freizeitaktivitäten</option>
    <option value="6">Hospizarbeit</option>
    <option value="7">Kochen</option>
    <option value="8">Kreativ-/ Kulturangebot</option>
    <option value="9">Natur/ Tiere</option>
    <option value="10">PC/ Internet etc.</option>
    <option value="11">Vorlesen</option>
    <option value="12">Quartier-/ Nachbarschaftsangebot</option>
    <option value="13">Gesundheit</option>
    <option value="14">Handwerk</option>
    <option value="15">religiös</option>
    </select>

    <select name="kreis">
    <option value="">Alle</option>
    <option value="1">Bielefeld</option>
    <option value="2">Kreis Herford</option>
    <option value="3">Kreis Minden</option>
    <option value="4">Kreis Lippe</option>
    <option value="5">Kreis Höxter</option>
    <option value="6">Kreis Gütersloh</option>
    <option value="7">Kreis Paderborn</option>
    </select>
    <input type="submit" name="submit" value="ok">
    </form>


    <?php


    // Verbindung zum Datenbankserver
    mysql_connect("localhost""User""Passwort") or die (mysql_error ());

    // Datenbank auswählen
    mysql_select_db("DB") or die(mysql_error());


    // SQL-Query

    $strSQL "SELECT * FROM con_pifa_projekt WHERE zielgruppe = '".$_POST["zielgruppe"]."' ";
    $strSQL "SELECT * FROM con_pifa_projekt WHERE schwerpunkt = '".$_POST["schwerpunkt"]."' ";
    $strSQL "SELECT * FROM con_pifa_projekt WHERE kreis = '".$_POST["kreis"]."' ";


    // Query ausführen (die Datensatzgruppe $rs enthält das Ergebnis)
    $rs mysql_query($strSQL);

    // Schleifendurchlauf durch $rs
    while($row mysql_fetch_array($rs)) {

    // Name der Person
    $strName $row['einrichtung'] . " " $row['kostenstelle'];

    // Erstelle einen Link zu person.php mit dem id-Wert in der URL
    $strLink "<a href = 'projekt.php?id=" $row['id'] . "'>"$row['titel'] ."</a>";


    // Link in der Liste
    echo "<p>" $strLink ." "$row['ort'] ." </p>";

    }

    // Schließt die Datenbankverbindung
    mysql_close();


    ?>
    </div>
    </body>
    </html>

  • #2
    Zitat von peer84 Beitrag anzeigen
    Leider flupt es nicht ganz.
    Versuch dich mal in die Leute hier hineinzuversetzen: Meinst du mit der Aussage kann jemand was anfangen? Du musst schon selber Fehler erkennen und wenigstens beschreiben.

    Zitat von peer84 Beitrag anzeigen
    Zudem wer es super wenn mir noch gesagt wird wieviele Datensätze da sind.
    Dann musst deinem Programm beibringen genau das zu tun. Was hast du schon selber probiert? Stichwort: "php mysql einträge zählen"

    Übrigens werden die mysql_* Funktionen nicht mehr unterstützt. Das mag bei dir noch laufen, weil du eine veraltete Version von PHP benutzt (< PHP 7), aber das knallt beim nächsten Update. Und wenn du das sowieso umstellst, bau auch gleich Prepared Statements (<-- Suchbegriff) mit ein, denn spätestens wenn dir mal jemand die ganze Datenbank löscht guckst du blöd und fragst dich warum. Und wenn du meinst, um Sicherheit kannst du dich auch noch später noch kümmern - dann wirst du dich ganz schön ärgern alles doppelt machen zu müssen. Also lern es lieber gleich richtig, mein Tipp.
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Weiterhin bleibt noch einiges anzumerken, zum Beispiel
      PHP-Code:
      $strSQL "SELECT * FROM con_pifa_projekt WHERE zielgruppe = '".$_POST["zielgruppe"]."' ";
      $strSQL "SELECT * FROM con_pifa_projekt WHERE schwerpunkt = '".$_POST["schwerpunkt"]."' ";
      $strSQL "SELECT * FROM con_pifa_projekt WHERE kreis = '".$_POST["kreis"]."' "
      Da übernimmst du die Parameter vom Formular ungeprüft in deine Abfrage, das ist für Hacker ein gedeckter Tisch und eine Einladung deine Daten zu stehlen oder gleich alles ganz zu löschen.

      SELECT * sollte man nicht verwenden, ausser für schnelle Tests vielleicht. Trage nach dem SELECT alle die Spalten ein, die du auch ausgegeben haben willst.

      Datenbankabfragen sollten nicht inmitten von HTML Ausgaben gemacht werden. Dein HTML beginnt ab <!DOCTYPE html>. Danach sollte nur noch ausgegeben werden, schaue dir dazu auch mal an was ein Affenformular ist.

      Lerne SQL damit du weisst wie du Abfragen erstellst, hier Hinweise zu geben würde den Rahmen sprengen, aber ein AND hilft hier schon mal weiter.
      WHERE zielgr.... AND schwer.... AND kreis.....

      PHP-Code:
      <form action="<?=$_SERVER["PHP_SELF"]?>" method="post">
      lass das action Attribut weg bei HTML5,, das ist sicherer als PHP_SELF zu verwenden.

      Beachte immer den Kontextwechsel, mehr dazu erfährst du auf https://wiki.selfhtml.org/wiki/Progr...Kontextwechsel
      Lies dir auch mal die Wissensammmlung durch, da stehen viele gute Tipps.

      Kommentar

      Lädt...
      X