(php/mysql) zwei Arrays, in Tabelle vereinen



  • Hallo community,

    ich bin gerade dabei eine Art Produktvergleich als Webapplikation (mittels CodeIgniter Framework) zu entwickeln und steh gerade wohl voll auf dem Schlauch. Dabei kann man immer zwei Produkte auswählen.

    In der Datenbank gibts u.a. eine Tabelle für die Komponentenbezeichnungen, Komponentenbeschreibungen, Hersteller, Klasse (zur Not kann ich auch das ERM nachliefern).

    Der User wählt wie gesagt zwei Produkte. Für diese zwei Produkte laufen zwei Abfragen im Hintergrund, die die entsprechenden Werte aus der DB lesen. Nun habe ich die zwei Arrays und will sie ausgeben.

    Es kann durchaus sein, dass Produkt A z.B. 3 mal einen Eintrag für Farbe hat (entsprechend sollen 3 <tr>-Tags geschrieben werden), Produkt B aber nur einen (ein <tr> mit entsprechender colspan-Angabe), oder keinen Eintrag. Wie kann man am besten diese beiden Seiten miteinander vergleichen?

    Vielen Dank im Voraus für eure Bemühungen 🙂

    PS: hier ein Auszug aus dem Array Dump nach dem Auslesen



  • so in etwa?

    Komponente       | Produkt A                           | Produkt B
    ======================================================================================
    Antenne          | (A) Die Antenne ist lang, 0.00 €    | (B) B-Antenne, 88.42 €
                     | (A) Noch eine lange Antenne, 0.00 € |
    -----------------+-------------------------------------+------------------------------
    Farbe            | (A) Die Farbe ist farblich, 0.00 €  | (B) Farbe Produkt B, 0.00 €
    -----------------+-------------------------------------+------------------------------
    Tastatur         | n/A                                 | (B) Wahnsinnstastatur, 0.00 €
    


  • genau so sollte es mal aussehen 🙂



  • phew... Glück gehabt... Und wo liegt genau das Problem? Beim Aufbau der Tabelle?

    Ich würd erstmal zumindest das erste Produkt nach Komponente sortieren. Dann nimmst du den ersten Eintrag aus Produkt A und suchst eine passende Komponente in Produkt B. Wenn vorhanden, beide hinschreiben, ansonsten bekommt Produkt B ein "n/A". Und das für jede Komponente. Bei jedem Komponentenwechsel schreibst du dessen Bezeichnung noch hin. Wenn du alle von A durch hast nimmst du die Übrigen von B noch.

    Das Einzige um das du dich noch kümmern musst ist, "n/A" nur hinzuschreiben, wenn auch tatäschlich keine derartige Komponente vorhanden ist. Wenn du bereits eine hattest, einfach leer lassen.

    So in etwa...



  • Die Vorsortierung ist nicht das Problem. Eher schon der Aufbau der Tabelle bzw. das suchen der passenden Komponenten von Produkt A und Produkt B.

    Aber ich versuche mich mal mit deinem Ansatz und melde mich dann sicher wieder 🙂

    Du hast mir auf jeden Fall schon mal gut weitergeholfen.



  • Versteh auch nicht wo das Problem liegt. Wie hast du denn vor genau zu vergleichen?



  • Es ging einfach um die Zuordnung der gleichen Komponenten (inkl. Beschreibungen) zu den Produkten (so, wie es zwutz skizziert hat).

    Aber die Vorgehensweise die zwutz vorgeschlagen hat war gut. Ich komme wieder voran. Habe wohl einfach etwas zu kompliziert gedacht.



  • hts schrieb:

    Habe wohl einfach etwas zu kompliziert gedacht.

    deshlab bleibt man anfangs oft hängen 😉


Anmelden zum Antworten