having sum, id auslesen

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

  • having sum, id auslesen

    ich habe eine Problem, mit einer Datenbankabfrage. Ich bin schon so weit gekommen, dass die Abfrage funktioniert.
    Nur leider habe ich das Problem, dass diese Abfrage scheinbar nicht so funktioniert, wie ich sie logisch lese.
    PHP-Code:
    Abfrage:
      if (
    $products tep_random_select("select products_id, products_points from " 
    TABLE_PRODUCTS 
    "  GROUP BY products_id having sum(products_points) = '" $points['points'] . "'")) {

      echo 
    'Produkte: ' $products['products_id'] . '<br>'; } 
    Diese Abfrage, soll nun folgendes machen, nehmen wir einmal an, $points['points']; = 100.
    Dann soll mir diese Abfrage, alle product_id´s liefern, die in der Summe 100 ergeben,
    macht sie auch so weit. Nur leider gibt sie mir nur immer die mit 100 aus.
    Sie soll aber auch, wenn möglich Produkt 1 = 80 Punkte und Produkt 2 = 20 Punkte ausgeben,
    ich hoffe, ihr habt das ein wenig verstanden, und können mir sagen, ob solch eine Abfrage überhaupt machbar ist.

    Gruß aus Berlin
    Zuletzt geändert von RobertRitschel; 17.05.2005, 14:05.

  • #2
    du gruppierst ja nach der products_id, dann müßten die anderen auch die gleiche products id haben..
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Hallo und vielen Dank, für die schnelle Antwort.. wonach,
      sollte ich sonst grupieren? Ich habe versucht es weg zu lassen aber das
      funktioniert auch nicht. Vielleicht, besteht die Möglichkeit, mir mit einem kleinen Beispiel unter die Arme zu greifen. Es wäre super, wenn das funktionieren würde.

      Gruß aus Berlin
      Robert
      Zuletzt geändert von RobertRitschel; 17.05.2005, 14:05.

      Kommentar


      • #4
        bitte erst http://www.php-resource.de/forum/sho...threadid=47906 lesen und dein Posting entsprechend ändern, dann schauen wir mal weiter.

        Kommentar


        • #5
          Ich werde gleich noch einmal die Frage erneut stellen...

          Ich habe eine Tabelle:

          product_id | points | price
          1 | 100 | 30.40
          2 | 100 | 29.30
          3 | 80 | 13.57
          4 | 20 | 17.89

          Ich möchte mit meiner Abfrage:

          PHP-Code:
          if ($products tep_random_select("select products_id, products_points from " 
          TABLE_PRODUCTS "  GROUP BY products_id 
          having sum(products_points) = '" 
          $points['points'] . "'")) { 
          wobei
          PHP-Code:
          tep_random_select 
          eine Zufällige Abfrage darstellt.
          Ich möchte erreichen, dass z.B. folgendes ausgegeben wird:

          1.)
          product_id = 3 (80 points)
          product_id = 4 (20 points)

          das funktioniert so aber nicht, momentan, ist es so das bei meiner Abfrage immer nur:

          2.)
          product_id = 1 (100 points)
          product_id = 2 (100 points)

          ausgegeben wird. Wie kann ich das nun machen, dass meine Ausgabe so funktioniert wie bei 1.)? Ich hoffe, dass ich das nun in der korekten Form erstellt habe und einer einen Rat weis.

          Gruß aus Berlin

          Zuletzt geändert von RobertRitschel; 17.05.2005, 14:07.

          Kommentar


          • #6
            Original geschrieben von asp2php
            bitte erst http://www.php-resource.de/forum/sho...threadid=47906 lesen und dein Posting entsprechend ändern, dann schauen wir mal weiter.
            Bitte immer noch beachten! Insbesondere Zeilenumbrüche.

            Kommentar


            • #7
              @RobertRitschel, ich habe immer noch den Scrollbalken nach rechts und daher keine Lust, dein Posting zu lesen. Ändere das, dann bekommst du auch Hilfe.

              Kommentar


              • #8
                So, nun sollte der Balken weg sein. Ich hoffe, dass es nun los gehen kann. *fg* :-)

                P.S. Ich sehe das leider anders mit einem 19" TFT...

                Gruß aus Berlin
                Robert
                Zuletzt geändert von RobertRitschel; 17.05.2005, 14:07.

                Kommentar


                • #9
                  1. was denkst du was sum() zurückgibt? eine Zahl, richtig? also warum setzst du ' beim vergleichen ein?

                  2. was denkst du was das Zeichen = bedeutet?

                  Kommentar


                  • #10
                    Vielen Dank, für die Antwort, um deine Frage zu beantworten:

                    z.B.
                    Ich habe einen Kunden, der hat 100 Punkte, weiß nun aber nicht,
                    was er sich für die 100 Punkte "kaufen" soll. Nun klickt er auf einen Link,
                    ein Fenster geht auf und zeigt ihm Produkte, die er mit seinem 100 Punkten
                    "kaufen" kann. Nun will ich dem Kunden aber nicht alle Produkte, zeigen
                    welche 100 Punkte besitzen. Sondern, ich möchte dem Kunden auch mehrer Artikel anbieten können, wofür sein Punkte ausreichen. Das heißt ich kann ihm bei 100 Punkten auch ein Produkt mit 80 Punkten und ein Produkt mit 20 Punkten zeigen.

                    Ich hoffe, das war verständlich. Vielleicht, habe ich auch einen Denkfehler und denke komplizierter als es eigentlich ist.

                    P.S. an welche Stelle kann ich denn das sum noch setzen, damit das funktioniert?

                    Kommentar


                    • #11
                      seufz... wie wär's mit:
                      PHP-Code:
                      "...having sum(products_points)<=".$points['points'])) { 
                      EDIT:
                      wenn du aber meinst, dass z.B. 100 pkt. für T-Shirt blau (60) und T-Shirt weiß (40) dann darfst du nicht nach product_id gruppieren, sondern nach was anderes, z.B. product_groups falls vorhanden.
                      Zuletzt geändert von asp2php; 17.05.2005, 14:44.

                      Kommentar


                      • #12
                        Entschuldigung, jetzt wo du das sagst, fällt mir das auch auf, wenn = dann =...

                        Sorry, irgendwie, habe ich da nicht einmal im geringsten dran gedacht...
                        Na kann ja jedem mal passieren.

                        Vielen Dank für den Klaps auf den Ars...!!!

                        Gruß aus Berlin
                        Robert

                        P.S. Grupierung, kann ich doch machen, wenn ich einfach eine spalte erstelle, meinet wegen test und standard = 0 oder 1 .... Sollte doch gehen oder...

                        Kommentar


                        • #13
                          Original geschrieben von RobertRitschel

                          P.S. Grupierung, kann ich doch machen, wenn ich einfach eine spalte erstelle, meinet wegen test und standard = 0 oder 1 .... Sollte doch gehen oder...
                          im Prinzip ja, denn das Ziel ist, dass du dadurch mehrere Produkte mit diesem (gemeinsamen) Merkmal zusammenfasst.

                          Kommentar

                          Lädt...
                          X