Ankündigung

Einklappen
Keine Ankündigung bisher.

MySQL Multidimensionales Array

Einklappen

Neue Werbung 2019

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

  • MySQL Multidimensionales Array

    Guten Tag,

    ist es mit MySQL möglich, folgenden Inhalt so wiederzugeben, ohne das man PHP dazu verwendet muss?

    PHP-Code:
    array(
        [
    0] = array (
                       [
    name] = 'Mustermann'
                       
    [array] = array(
                                          [
    0] =  array (
                                                         [
    vorname] = 'Max'
                                                    
    )
                                          [
    1] =  array (
                                                         [
    vorname] = 'Lisa'
                                                    
    )
                                          [
    2] =  array (
                                                         [
    vorname] = 'Peter'
                                                    
    )
                                      )
                 )

    Tabellen:
    Nachname
    - id_nachname
    - name

    vorname
    - id_nachname
    - name

    Folgende Funktion:
    Ich möchte alle Vornamen haben, die den selben Nachnamen haben. Die suche erfolgt per Nachname TEXT (also 'Mustermann').

    Bisher bekomme ich nur folgendes:
    PHP-Code:
    array(
        [
    0] = array (
                       [
    name] = 'Mustermann'
                       
    [vorname] = 'Max'
                 
    )
        [
    1] = array (
                       [
    name] = 'Mustermann'
                       
    [vorname] = 'Lisa'
                 
    )
        [
    2] = array (
                       [
    name] = 'Mustermann'
                       
    [vorname] = 'Peter'
                 
    )


    SQL Befehl
    PHP-Code:
    $sql "
         SELECT  *
         FROM     nachname as nn,
                      vorname as vn
         WHERE   nn.name = 'Mustermann'
         AND       vn.id_nachname = nn.id_nachname
    "


    MySQL soll also die Vornamen nochmal in ein extra "Array" stecken, die genau die selbe ID_nachname hat wie der gesuchte Nachname.


    Hierbei handelt es sich um ein Beispiel, bitte berücksichtigen. Und bitte keine Kommentare, wieso ich das so machen (es handelt sich einfach um ein Beispiel)

  • #2
    Zitat von Condor93 Beitrag anzeigen
    Ich möchte alle Vornamen haben, die den selben Nachnamen haben.

    MySQL soll also die Vornamen nochmal in ein extra "Array" stecken, die genau die selbe ID_nachname hat wie der gesuchte Nachname.
    Aggregieren. Ich könnt es Dir in PG zeigen.
    PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

    Kommentar


    • #3
      Du kannst es mit GROUP_CONCAT() und GROUP BY versuchen. Da kommt aber keine Array raus, das müsstest du dann per explode erledigen. Beachte dabei auch die Dokumentation, GROUP_CONCAT ist standardmässig auf 1kb beschränkt.

      Zitat von Condor93 Beitrag anzeigen
      Und bitte keine Kommentare, wieso ich das so machen (es handelt sich einfach um ein Beispiel)
      Grade als Anfänger sollte man an anderen Lösungsansätze interessiert sein.

      @akretschmer erzeugt die pg_ Schnittstelle in PHP automatisch Arrays aus Datenbankseitigen Arrays?

      Kommentar


      • #4
        Zitat von erc Beitrag anzeigen
        @akretschmer erzeugt die pg_ Schnittstelle in PHP automatisch Arrays aus Datenbankseitigen Arrays?
        Nein.
        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

        Kommentar


        • #5
          danke erc

          mein Befehl:

          PHP-Code:
          $sql "
               SELECT  nn.*, GROUP_CONCAT(vn.name)
               FROM     nachname as nn,
                            vorname as vn
               WHERE   nn.name = 'Mustermann'
               AND       vn.id_nachname = nn.id_nachname
          "

          Kommentar


          • #6
            Zitat von Condor93 Beitrag anzeigen
            danke erc

            mein Befehl:
            Syntaxfehler. Ab MySQL 5.7.5 auch in MySQL.
            PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

            Kommentar

            Lädt...
            X