Ankündigung

Einklappen
Keine Ankündigung bisher.

Array Matching

Einklappen

Neue Werbung 2019

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

  • Array Matching

    hi,

    ich habe eine DB in der User drin sind und Seiten an denen Sie geschrieben haben (MediaWiki). Ich würde gern mittels einer Funktion feststellen können, wer mit wem zusammengearbeitet hat.
    Ich hatte schon einen Ansatz, der funktionierte, leider ergab sich aber ein Logikfehler, sodass ich wieder von vorn anfangen muss....

    Ich habe es jetzt soweit, dass ich alle User mit Ihren Seiten in ein Array einlese.

    Die DB Query liefert mir alle User und deren editierte Seiten. Diese packe ich nach dem User sortiert in ein zweidimensionales Array, dass dann wie folgt aussieht:

    Code:
    Array
    (
        name
       [Vister] => Array
            (
                 i     ArtikelID
                [1] => 1
                [22] => 33
                [30] => 40
                [43] => 52
                [45] => 53
                [47] => 54
                [48] => 51
            )
    
        [DummyUser] => Array
            (
                [2] => 1
                [19] => 32
                [23] => 33
                [41] => 51
            )
         ...
         ...
    )
    aber irgendwie komme ich damit nicht weiter.


    Ich hätte gern in diesem Fall die Übereinstimmung
    Vister <-> DummyUser
    und die Zahl 2 (counter), weil die beiden Namen in den ArtikelIDs 33 und 51 übereinstimmen.

    Wie macht man sowas?
    Ist da ein Array überhaupt sinnvoll?
    Irgendwie will mir grad keine andere Datenstruktur in den Kopf
    Hier findet Ihr alles, was ich dank eurer Hilfe geschafft habe und noch mehr: http://viskoda.viktor-dite.de


  • #2
    Code:
    SELECT c.id , GROUP_CONCAT(DISTINCT a.author SEPARATOR ',')
    FROM content c
         LEFT LOIN 
         relation r
         ON ...
         LEFT LOIN 
         authors a
         ON ...
    GROUP BY c.id;
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      whow, das muss ich mir erstmal durch den Kopf gehen lassen!

      Dankeschön!!!!
      Hier findet Ihr alles, was ich dank eurer Hilfe geschafft habe und noch mehr: http://viskoda.viktor-dite.de

      Kommentar


      • #4
        Ist (logisch) ungetestet und Du musst natürlich trotzdem noch ein Array drau erstellen (explode oder so), der Grundgedanke ist aber, die User nach Inhalt zu sortieren. In einem gemeinsamen Array (=CONCAT-String) enthaltene User-Ids sind dann die Übereinstimmung. Die Count-Sache mußt Du dann noch anders lösen.
        Allgemein bieten sich wohl eher mindestens zwei Arrays an.

        Vielleicht ginge auch ein
        Code:
        SELECT ... 
        FROM
         User u1
         JOIN
         Inhalt
         JOIN 
         User u2
        WHERE u1.ID<>u2.ID
        , da mußt Du aber selbst drüber brüten.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          hi, danke, aber dieser Ansatz scheint auch nicht die Lösung zu sein. Ich weiß gar nicht mehr warum ich diese Richtung weiterverfolgt habe
          Hier findet Ihr alles, was ich dank eurer Hilfe geschafft habe und noch mehr: http://viskoda.viktor-dite.de

          Kommentar


          • #6
            hier geht es weiter
            Hier findet Ihr alles, was ich dank eurer Hilfe geschafft habe und noch mehr: http://viskoda.viktor-dite.de

            Kommentar

            Lädt...
            X