Kann mir jemand erklären was ein Gruppenwechsel ist

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

  • Kann mir jemand erklären was ein Gruppenwechsel ist

    ich habe schon überall danach gesucht. Es wird meist nur darauf verwiesen, dass man nach "Gruppenwechsel" suchen soll.

    Wozu ich einen Gruppenwechsel brauche sei hiermit erklärt:

    Ich möchte feststellen, welche Artikel in einem Shop zusammen gekauft werden.
    Die ensprechende Tabelle soll so aussehen.
    12 14
    14 17
    12 14
    12 14
    12 18

    Es soll nun gezeigt werden das Arikel 12 zusammen mit Artikel 14 gekauft wird. 12 ist eine fixe zahl die zuerst definiert ist. alle anderen zahlen müssen erschlossen werden.

    Diese Frage wurde übrigens - ich gebe es zu - schon mehrfach gestellt. - allerdings ohne ein befriedigendes ergebnis. es sei hiermit darauf verwiesen:
    http://www.php-resource.de/forum/sho...threadid=66046
    http://www.php-resource.de/forum/sho...threadid=65894

    Ich verspreche mir, dass die Funktionsweise eines Gruppenwechsels eine bessere Lösung biete als diese Lösung die nur bei einen kleinen Datensatz funktioniert:

    $sql = "SELECT
    COUNT(id2) as anzahl,
    SUM(id2) as summe
    FROM
    ids
    WHERE id1 = '12'
    GROUP BY id2
    ;";
    $result = mysql_query($sql) OR die (mysql_error());
    while($row = mysql_fetch_assoc($result))
    {
    if(!isset($wert1))
    {
    $anzahl1 = $row['anzahl'];
    $wert1 = $row['summe'] /$anzahl1;
    } else {
    $anzahl2 = $row['anzahl'];
    $wert2 = $row['summe']/$anzahl2;
    }
    }

    if($anzahl1 > $anzahl2)
    {
    echo $wert1;
    } else {
    echo $wert2;
    }


    ?>

  • #2
    Ich bin immernoch für eine Änderung der Tabelle (http://www.php-resource.de/forum/sho...046#post423577). Was spricht dagegen?

    Kommentar


    • #3
      Kann mir jemand erklären was ein Gruppenwechsel ist

      ich habe schon überall danach gesucht. Es wird meist nur darauf verwiesen, dass man nach "Gruppenwechsel" suchen soll.

      Wozu ich einen Gruppenwechsel brauche sei hiermit erklärt:

      Ich möchte feststellen, welche Artikel in einem Shop zusammen gekauft werden.
      Die ensprechende Tabelle soll so aussehen.
      12 14
      14 17
      12 14
      12 14
      12 18

      Es soll nun gezeigt werden das Arikel 12 zusammen mit Artikel 14 gekauft wird. 12 ist eine fixe zahl die zuerst definiert ist. alle anderen zahlen müssen erschlossen werden.

      Diese Frage wurde übrigens - ich gebe es zu - schon mehrfach gestellt. - allerdings ohne ein befriedigendes ergebnis. es sei hiermit darauf verwiesen:
      http://www.php-resource.de/forum/sho...threadid=66046
      http://www.php-resource.de/forum/sho...threadid=65894

      Ich verspreche mir, dass die Funktionsweise eines Gruppenwechsels eine bessere Lösung biete als diese Lösung die nur bei einen kleinen Datensatz funktioniert:

      $sql = "SELECT
      COUNT(id2) as anzahl,
      SUM(id2) as summe
      FROM
      ids
      WHERE id1 = '12'
      GROUP BY id2
      ;";
      $result = mysql_query($sql) OR die (mysql_error());
      while($row = mysql_fetch_assoc($result))
      {
      if(!isset($wert1))
      {
      $anzahl1 = $row['anzahl'];
      $wert1 = $row['summe'] /$anzahl1;
      } else {
      $anzahl2 = $row['anzahl'];
      $wert2 = $row['summe']/$anzahl2;
      }
      }

      if($anzahl1 > $anzahl2)
      {
      echo $wert1;
      } else {
      echo $wert2;
      }


      ?>

      Kommentar


      • #4
        ich hab keine Ahnung wie die Werte in die Tabelle kommen

        Da müsste man ja für jede Kombination einen Counter einrichten, oder? und bei nur zehn Artikeln sind das 50 Kombinationen, wenn ich mich nicht täusche

        Kommentar


        • #5
          CROSSPOSTINGS sind unerwünscht! *merge*
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Ja richtig, man müßte für jede Kombination eine weitere Zahl speichern. Was stört dich daran? Du speicherst gegenwärtig jede Kombination so oft, wie sie auftritt. Sobald sie mehr als einmal vorkommt, braucht die Variante mit dem Zähler deutlich weniger Speicher.

            Ganz abgesehen davon bekommst du dann endlich deine Query hin - und das sogar noch viel performanter, denn die Tabelle wird viel kürzer sein und keine identischen Zeilen haben (kann also gut indiziert werde).

            Übrigens täuschst du dich.

            Kommentar


            • #7
              kannst du mir einen kleinen anstoß geben

              damit ich draufkomme wies laufen soll

              Kommentar


              • #8
                Re: kannst du mir einen kleinen anstoß geben

                Original geschrieben von sanktusm
                damit ich draufkomme wies laufen soll
                Was hast du an dem hier angedeuteten Schema nicht verstanden? Es doch einfach nur ein zusätzliche Spalte?

                Bisher hast du irgendwo INSERT ... (12, 14) gemacht.
                Nun prüfst du vorher, ob es eine Zeile "12 14" schon gibt und erhöhst ihren Zähler um 1. Gibt es keine, dann INSERT ... (12, 14, 1).

                Kommentar


                • #9
                  vielen liebe dank werd es austüfteln

                  so langsam schnall ich es

                  Kommentar

                  Lädt...
                  X