Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Dynamisches Array erstellen in PHP

Mitglied: Xaero1982

Xaero1982 (Level 4) - Jetzt verbinden

19.02.2020 um 08:22 Uhr, 623 Aufrufe, 22 Kommentare

Moin Zusammen,

ich bräuchte mal einen Geistesblitz.

Ich habe ganz viele Daten in einer MongoDb.
Ich möchte diese Daten nun exportieren in eine CSV Datei. Dabei soll die Sortierung aber flexibel bleiben.

Enthalten sind z.B. Name, Vorname, Geb.Datum, Geb.Ort etc.

Nun soll derjenige, der ein Export benötigt flexibel gestalten können an welcher stelle in der CSV der Wert drin steht.

Als Frontend dachte ich mir einfach die möglichen Felder aufzulisten, daneben ein DropDown mit den Nummern eins bis x. Über Ajax dann alle Nummern ausblenden, die in einem anderen DropDown gewählt worden sind.

So weit so gut. Aber ich hab im Moment noch keine Idee wie ich ein Array erstellen kann bei dem ich z.b.

$export = array(name, vorname,Geb.Datum,Geb.Ort) habe bzw. dann ein Array:
$export = array(Geb.Datum,Geb.Ort,Vorname,Name) habe.

Je nachdem welche Reihenfolge der Nutzer haben will.

Hat jemand eine Idee?

Grüße
Mitglied: TRDSRLZ
19.02.2020 um 08:27 Uhr
Wie greifst du denn auf die DB zu?

Ich hab mich zwar schon etwas länger nicht mehr mit PHP befasst, aber grundsätzlich bietet PHP mit PDO doch nicht Möglichkeit mit benannten Parametern die Abfrage abzufeuern und dann kann ich das Ergebnis immer noch "dynamisch" anordnen in der Form, dass ich sage, in welcher Reihenfolge die Attribute ausgegeben werden.
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 08:36 Uhr
Na über die php mongo libary?!

Das ist aber aktuell gar nicht die Frage. Die Frage ist ja wie bekomme ich ein flexibles Array hin und da ist die DB ja grds. erstmal wurscht.
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 08:39 Uhr
Dann tut mir das Missverständnis leid. Sorry.
Bitte warten ..
Mitglied: erikro
19.02.2020 um 08:47 Uhr
Moin,

Hat jemand eine Idee?

Wie heißt es nicht so schön in dem Lied "Summertime": So hash little baby, don't you cry. Ich würde die Daten nicht in einem Array sammeln, sondern einem Hash. Dann musst Du nicht wissen, an welcher Stelle im Array z. B. das Geb.Datum steht, sondern kannst es direkt über seinen Namen ansprechen. Dann noch ein Array in dem Du die Reihenfolge der Feldnamen hast, die der User gerne hätte. Darüber ein Foreach laufen lassen und entsprechend die Daten aus dem Hash holen. So als Ansatz. PHP ist zu lange her, als dass ich das auf die Schnelle programmieren könnte.

hth

Erik
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 08:58 Uhr
Zitat von TRDSRLZ:

Dann tut mir das Missverständnis leid. Sorry.
Ach alles gut
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 09:04 Uhr
Aber vielleicht hilfst du mir beim verstehen. Oder wir reden beide aneinander vorbei.

Ich habe verstanden: du erzeugst eine DB-Abfrage die eine CSV zurückliefert. Die CSV enthält verschiedene Attribute und du willst die Attribute dynamisch neu anordnen in PHP?

Da stell ich mir die Frage, warum nicht schon sie Abfrage so formulieren, dass die Reihenfolge der Attribute passt? Und das würde mit prepared Statements mit PDO funktionieren.

So war es gemeint.
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 09:08 Uhr
Zitat von erikro:

Moin,

Hat jemand eine Idee?

Wie heißt es nicht so schön in dem Lied "Summertime": So hash little baby, don't you cry. Ich würde die Daten nicht in einem Array sammeln, sondern einem Hash. Dann musst Du nicht wissen, an welcher Stelle im Array z. B. das Geb.Datum steht, sondern kannst es direkt über seinen Namen ansprechen. Dann noch ein Array in dem Du die Reihenfolge der Feldnamen hast, die der User gerne hätte. Darüber ein Foreach laufen lassen und entsprechend die Daten aus dem Hash holen. So als Ansatz. PHP ist zu lange her, als dass ich das auf die Schnelle programmieren könnte.

hth

Erik

Klingt gut, aber ich hab das auch noch nie gemacht ich werd mal googlen.
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 09:11 Uhr
Zitat von TRDSRLZ:

Aber vielleicht hilfst du mir beim verstehen. Oder wir reden beide aneinander vorbei.

Ich habe verstanden: du erzeugst eine DB-Abfrage die eine CSV zurückliefert. Die CSV enthält verschiedene Attribute und du willst die Attribute dynamisch neu anordnen in PHP?

Da stell ich mir die Frage, warum nicht schon sie Abfrage so formulieren, dass die Reihenfolge der Attribute passt? Und das würde mit prepared Statements mit PDO funktionieren.

So war es gemeint.

Vergiss mal die DB - das war rein informativ

Stelle dir 4 Inputfelder vor auf einer HTML Seite.
Name
Vorname
Geb.Ort
Geb.Datum

Daneben gibt es ein DropDown mit einer Nummerierung für eine Sortierung.

User 1 will die CSV in:
Vorname,Name,Geb.Ort,Geb.Datum haben

User 2 will sogar nur:
Name,Vorname haben

User 3 will die CSV als:
Geb.Datum,Name,Vorname haben.

Jeder will also eine andere CSV haben, also muss ich das irgendwie dynamisch erstellen lassen.
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 09:14 Uhr
Ja und das ginge mit PDO.

Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.

Hier mal ein Tutorial dazu:
https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-inj ...

Vorteil du erhöhst auch die Sicherheit deines Codes.
Bitte warten ..
Mitglied: erikro
19.02.2020 um 09:21 Uhr
Moin,

Zitat von TRDSRLZ:
Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.

So nennt man das Hash in PHP. Richtig. Das klingt gut.

Liebe Grüße

Erik
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 09:23 Uhr
Siehste, das wusste ich nicht... dann sorry fürs klug###n
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 09:54 Uhr
Schade nur, dass es PDO nicht für MongoDB gibt. Ich benutze kein MySQL
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 09:56 Uhr
PDO funktioniert ja nicht nur mit MySQL aber du hast Recht, MongoDB wird nicht unterstützt. Dann doppelt sorry.
Bitte warten ..
Mitglied: certifiedit.net
19.02.2020 um 10:57 Uhr
Moin,

warum nicht einfach ein Formular, auf dessen Basis die Order und der Umfang der "Query" zusammengesetzt wird? Das kannst du dann ja dynamisch per drag und drop ausdesignen, Reihenfolge und ob überhaupt aktiv. Ob das den Aufwand wert ist musst du selbst wissen.

Viele Grüße,

Christian
certifiedit.net
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 14:44 Uhr
Das ist ja lediglich ein "Designvorschlag" von dir, aber das was im Hintergrund passiert ist damit noch immer unklar.

Das mit dem Query war aber ein Stichwort, aber leider kann man damit keine Reihenfolge vorgeben.

Selbst wenn ich die Werte aus der DB, die dort mit Name, Vorname, Geb.Datum und GebOrt drin stehen im Query anders sortiere, bekomme ich die Daten so ausgeworfen wie sie die Reihenfolge in der DB hergibt.
Aber ich denke das ist schon mal ein guter Anfang.
Bitte warten ..
Mitglied: certifiedit.net
19.02.2020 um 14:47 Uhr
Wie hättest du das aufgebaut? Lautsprecher und die Wünsche in die offene Welt geschrieen?

Ohne Query geht es nicht, und die kannst du dynamisch aufbauen...

und nein, die Query gibt die Sortierung vor...also ich seh mich ja echt nicht als Ass in PHP, aber das ist doch basis der basis?
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 15:07 Uhr
Das Frontend ist - nochmal - gerade total irrelevant.

Reden wir vom gleichen Query? Es geht um ein Query an eine MongoDb und der gibt eben keine Sortierung vor.
Bitte warten ..
Mitglied: TRDSRLZ
19.02.2020 um 15:10 Uhr
Ok. Aber du setzt eine Query ab. Bekommst ein Ergebnis zurück und erzeugst daraus deine CSV?

Wenn das so ist, warum gehst du nicht einen Zwischenschritt? Erzeugst ein Assoc_Array mit dem Ergebnis deiner Query und erzeugst die CSV dann anhand der Benutzerpräferenz über das Assoc_Array?
Bitte warten ..
Mitglied: certifiedit.net
19.02.2020 um 15:12 Uhr
Ich rede vom Backend...und da noch kein query vorgestellt hast, können wir nicht vom gleichen reden, insbesondere, da es ja dynamisch sein soll. Wobei sich für mich die Basis nicht erschliesst, warum für den einen User

Name, nachname, strasse, plz, ort ein problem darstellt und er name und nachname getauscht braucht. Eine verkürzung auf strasse, plz, ort oder nachname, name macht natürlich sinn..aber ich hoffe, dass dies auch kein Problem ist.
Bitte warten ..
Mitglied: Xaero1982
19.02.2020 um 15:29 Uhr
Auszug
Gibt was zurück?

Alternativ:

Gibt was zurück?

Die Reihenfolge der Ausgabe entspricht dem wie es in der mongoCollection angelegt wurde.
Bitte warten ..
Mitglied: erikro
20.02.2020 um 16:43 Uhr
Moin,

Zitat von Xaero1982:

Da hast Du Dein Hash oder assioziatives Array oder Objekt (wie auch immer) ja schon. Jetzt brauchst Du doch nur noch die Daten in der richtigen Reihenfolge auszugeben.

Liebe Grüße

Erik
Bitte warten ..
Mitglied: Xaero1982
20.02.2020 um 22:57 Uhr
Habe es inzwischen auch hinbekommen.
Bitte warten ..
Ähnliche Inhalte
PHP
Php regex und Array
gelöst Frage von Thomas91PHP5 Kommentare

Hallo zusammen, ich benötige dringen hilfe mit php, regex und einem Array. Ich habe eine Textdatei in der eine ...

PHP
PHP - unique-array() und sort()
gelöst Frage von ThomasXYZPHP14 Kommentare

Hallo zusammen, ich bin gerade leicht am verzweifeln und finde nicht so recht die Lösung. Ich bekomme per Datenbankabfrage ...

PHP
PHP Array mixen nach Schema
gelöst Frage von LorderichPHP3 Kommentare

Hallo zusammen, irgendwie stehe ich nun seit knapp 2 Tagen ein bisschen wie der Ochse vor Berg und sehe ...

Vmware
RAM Speicher Dynamisch
gelöst Frage von zeroblue2005Vmware5 Kommentare

Hallo Zusammen, ich habe einen ESXI-5.1 am laufen mit 32 GB. Auf dem Hyper-Visor laufen derzeit 9 VM. Die ...

Neue Wissensbeiträge
Microsoft

Support of DANE and DNSSEC in Office 365 Exchange Online

Information von Dani vor 3 StundenMicrosoft

Guten Abend zusammen, Microsoft is committed to providing world-class email security solutions and the support for the latest Internet ...

Off Topic

5G und Corona - schwachsinnige Verschwörungstheroretiker

Information von brammer vor 14 StundenOff Topic6 Kommentare

Hallo, das man Verschwörungstheoretikern nicht mit Logik und stichhaltigen Argumenten beikomme kann ist ja leider ein weit verbreitetes Phänomen. ...

Informationsdienste

Leistungsschutzrecht: Ein neuer Diskussionsentwurf liegt vor

Information von Frank vor 2 TagenInformationsdienste12 Kommentare

Anfang April (leider kein Scherz) hat das Bundesjustizministerium den nächsten ausformulierten Referentenentwurf für ein "erstes Gesetz zur Anpassung des ...

Instant Messaging

Videokonferenz oder Chatsystem für das Homeoffice

Information von Frank vor 3 TagenInstant Messaging6 Kommentare

Ich hatte es bereits in einem Kommentar gepostet, da ich aber viele Nachfragen dazu bekam, hier noch mal meine ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Lokale IP-Adresse
gelöst Frage von Kuerbis2020LAN, WAN, Wireless38 Kommentare

Lokale IP-Adresse: Woher bezieht Mein PC seine lokale IP-Adresse? Nenne den Namen des Dienstes und wo der Dienst installiert ...

DNS
DNS-Festlegung Windows
gelöst Frage von Kuerbis2020DNS18 Kommentare

DNS-Festlegung: Wo kann man das statische DNS festlegen und an welcher stelle wird das vorgenommen? A: Feste IP-Adresse für ...

Schulung & Training
IT-Bedarf ermitteln
Frage von malikaSchulung & Training17 Kommentare

Hallo zusammen, ich würde gerne Eure Kritik oder Ratschläge zum Ermitteln des IT-Bedarfs für ein Steuerbüro (2 Steuerberater, 1 ...

Netzwerke
Frage zu VoIP-VLAN und
Frage von darkness08Netzwerke11 Kommentare

Hallo, in einem anderen Beitrag hatte ich gefragt, wie ich UDP bzw. RTP in ein anderes VLAN Route. Dazu ...