sql query in array und dann ausfiltern

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

  • sql query in array und dann ausfiltern

    Hallo Profis

    Ich habe folgende Tabelle:

    ID
    7polig ---> true/false
    13polig "
    Modell1 --->Text
    Modell2 "
    Modell3 "
    Modell4 "
    Modell5 "
    Modell6 "

    In den 6 Modell-Spalten können verschiedene Artikel sein oder auch gar keine.
    Ich möchte, dass nur die Felder in meine html-Tabelle kommen, die mit $artikel (z.B. BMW) übereinstimmen!

    Wenn z.B. in Modell1 BMW und in Modell2 VW steht, dann nur Modell1 und die restlichen nicht (die leeren ja sowieso nicht!)

    Könnte man nicht die gesamte Abfrage in ein Array schreiben und dann mit array_filter die ungewünschten rauslöschen lassen und danach per echo den Rest in die Tabelle schreiben lassen?

    Ich weiss, dass man - wenn man das Array erst mal hat - mit einer foreach-Schleife durchsuchen könnte. Aber ob man dann Werte löschen soll oder die richtigen wieder in ein neues Array schreiben sollte - und dann das mit der richtegen Sortierung bei der html-Ausgabe...

    Ausserdem möchte ich, dass wenn true bzw. 1 zurückgegeben wird, ein x statt der 1 in die mit php generierte Tabelle eingesetzt wird!

    Man müsste dann also sowas in der Art auch noch mit einfliessen lassen:

    <php

    if ($13polig == 1) {

    $wert = 'x';

    }
    else {

    $wert ='-';

    };

    echo '

    <table>
    <tr>
    <td>'.$wert.'</td>
    </tr>
    </table>';

    ?>


    Zu viel des Guten?? Ich verstehe das ganze Prozedere mit array_filter nocht so ganz... vielleicht ist das ja auch der falsche Ansatz?!?

    Kann mir da Jemand einen Tip geben, wie man die Sache am Besten angehen kann???

  • #2
    Wenn ich das so überfliege, glaube ich, dass du eher deine Datenbank normalisieren solltest, dan hättest du mit deiner Abfrage auch kein Problem.

    Aber erlich gesagt versteh ich auch nicht so ganz die Logik.

    Mal n Ansatz:
    Code:
    |----------------------------|                        /           \                        |-----------------|
    |     Auto                   |----------------------     hat      ----------------------|    Stecker |
    |----------------------------| n                      \         /                  1,n |-----------------|
    Wenn du das so in der DB speicherst, dann kannst du alles mit der Datenbank filtern.

    EDIT:
    hat die Fomatierung ein wenig zerhauen
    Zuletzt geändert von Damian1984; 06.02.2007, 07:57.
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      Das mit den Steckern ist "zweitrangig" - ausserdem gibt das ja nur jeweils ein true/false zurück: Jeder Eintrag kann nur entweder 7 oder 13 polig sein...

      Kommentar


      • #4
        Tut mir leid, aber ich verstehe den Sin und Zweck des ganzen nicht. Hab mir das jetzt bestimmt 10 mal durchgelesen.

        Wieso speicherst du die leeren Felder überhaupt? Oo
        Wie soll die Tabelle aussehen?

        Fragen über Fragen, aber keine Antworten.
        Für Rechtschreibfehler übernehme ich keine Haftung!

        Kommentar


        • #5
          In den 6 Modell-Spalten können verschiedene Artikel sein oder auch gar keine.
          Ich möchte, dass nur die Felder in meine html-Tabelle kommen, die mit $artikel (z.B. BMW) übereinstimmen!

          Wenn z.B. in Modell1 BMW und in Modell2 VW steht, dann nur Modell1 und die restlichen nicht (die leeren ja sowieso nicht!)
          Das ist normal ganz einfach mit einser Sql Abfrage zu lösen.

          Select * from Tabelle where Modell='BMW';

          Natürlich muß du das durch deine Tabellen namen ersetzen bwz spalten.

          Kommentar


          • #6
            Original geschrieben von splasch

            Select * from Tabelle where Modell='BMW';
            So wie ich das Verstanden habe, kann BMW in Modell1, Modell2 etc stehen... das ist doch unfug?
            Für Rechtschreibfehler übernehme ich keine Haftung!

            Kommentar


            • #7
              Da du dich explizit an die Profis wendest, musst du wohl oder übel deine DB normalisieren. Alles andere ist unprofessionell und viel zu aufwändig.

              Selektierung und Sortierung von Daten (aus der SQL-DB kommend) hat absolut nichts im PHP-Code zu suchen.

              Kommentar


              • #8
                Klar die Tabelle gehört auch richtig aufgebaut. Spalten namen mit modell1 ,Modell 2, modell3, machen keinen sin.

                Aufbau einer Tabelle muß dem Datenbak schema angebasst werden.
                Primery key muß in der Tabelle vorhanden sein.

                In seinem Fall würd ich die Tabelle folgend aufbauen.

                Die Spalten namen:

                Id_Auto :setzen auf auto inrement und prymery key
                Modell : Varchar ca 20 zeichen
                Stecker : Varchat 10 zeichen


                So strukturiert kanste ganz leicht die Tabelle füllen und abfragen. Der Inhalt kann dann so ausehen

                1 , BMW, 13 pol
                2 , VW , 13 pol
                3, BMW, 17 pol
                4, , 15 pol
                5, Golf, 13 pol

                unsw.

                Kommentar


                • #9
                  "Modell : Varchar ca 20 zeichen"
                  - autsch (ich sagte normalisieren!)

                  Stecker : Varchat 10 zeichen
                  - autsch (wenns tatsächlich nur 7- oder 13pol gibt, dann nen boolean, im mysql dann tinyint. ggf. set oder enum.)

                  Kommentar

                  Lädt...
                  X