Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrfache Like-Abfrage der gleichen Spalte

Einklappen

Neue Werbung 2019

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

  • Mehrfache Like-Abfrage der gleichen Spalte

    Ich möchte per Select multiple Auswahlliste, 1 - 8 Werte der SQL-Datenbank abfragen und ausgeben.

    Wenn ich einen Wert der Selectbox auswähle wird auch der eine richtig dargestellt, wähle ich nun mehrere wird immer der letzte Wert angezeigt.
    Klar woran das liegt, aber ich scheitere beim ausführen der MySQL Datenbank.

    Hier ein Ausschnitt der Form
    PHP-Code:
    <select name="test[]" class="selectpicker" multiple>
    <
    option .... </option>
    </
    select
    PHP-Code:
    $MarkiertesElement $_POST['test'];

    $i 0;
    foreach (
    $MarkiertesElement as $key => $value) { 
         
    $mark_count count($MarkiertesElement);
    $test "test LIKE '%".$value."%' ";

    echo    
    $test//wird alles richtig dargestellt

    $i++;

    if (
    $i $mark_count) {echo  " or ";} "";

    Es wird auch alles richtig ausgegeben innerhalb der Schleife, aber wie bekomm ich das jetzt in meine Ausgabe?

    PHP-Code:
    $ergebnis mysql_query("SELECT test FROM probe WHERE ".$test." ORDER BY datum ASC") ... 
    Jetzt wird bei der Ausgabe von $test immer der letzte Wert genommen.

    Oder hab ich den falschen Ansatz, evtl geht es ja auch unkomplizierter


  • #2
    1. Du überschreibst $test bei jedem Schleifendurchlauf, daher kriegst du immer nur den letzten Wert.
    2. Du könntest die IN()-Funktion in MySQL verwenden um mehrere Werte zu prüfen.
    3. Wozu hast du Platzhalter (%) wenn du doch eh die vorgegebenen Werte in der Select-Liste hast? %, vor allem am Anfang (Index kann nicht benutzt werden), kostet Performance.

    Kommentar


    • #3
      Du überschreibst $test bei jedem Durchlauf deiner Schleife, dadurch kommt auch nur der letzte Wert in die Abfrage.
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

      Kommentar


      • #4
        Wenn ich z.B. 3 Werte in der Selectbox markiere bekomm ich folgende Ausgabe:

        PHP-Code:
        test LIKE '%1%' or test LIKE '%2%' or test LIKE '%3%' 
        Das ist ja soweit richtig.

        Aber nur innerhalb der Schleife. Wie bekomm ich dieses zusammengesetzte jetzt außerhalb der Schleife.
        Danke Tropi für den Tipp mit den %, werde es demnächst berücksichtigen.

        Kommentar


        • #5
          String-Verkettung ist das Stichwort und gehört eigentlich zu den Grundlagen. Bitte nachlesen gehen.

          Kommentar

          Lädt...
          X