Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Verkaufsrang?

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Verkaufsrang?

    Hallo,

    ich habe einen Shop geschrieben und möchte nun, daß der Verkaufsrang angezeigt wird. Insgesamt ist die Programmierung sehr komplex und Aufwendig, weil ich sehr viele Zusatzfunktionen berücksichtigt habe. Wenn ein Artikel gekauft wurde, wird die Zahl in der DB wie folgt um die gekaufte Anzahl des Artikel heruauf gesetzt (Bitte einfach so hinnehmen. Es funktioniert!):

    Code:
    //Verkaufsrang aktualisieren
    $c = trim($_POST['artikel']);
    $v = explode(",", trim($c));
    $anzahl = count($v);
    $x = 0;
    while ($x < $anzahl){
    $ausgabe = trim($v[$x++]);
    $c2 = explode("mal", trim($ausgabe));
    $rang = mysql_query("SELECT Artikelnummer,Rang FROM Buecher WHERE Artikelnummer='".trim($c2[1])."'");
    $arra = mysql_fetch_array($rang);
    $neu_rang = ($arra['Rang']+trim($c2[0]));
    mysql_query("UPDATE Buecher SET Rang='".$neu_rang."' WHERE Artikelnummer='".trim($c2[1])."'");
    $rang_neu = mysql_query("SELECT Artikelnummer,Rang FROM Buecher WHERE Artikelnummer='".trim($c2[1])."'");
    $arra_neu = mysql_fetch_array($rang_neu);
    $ausgabex .= trim($arra_neu['Rang']).",".$arra_neu['Artikelnummer']."
    ";
    }
    Ich habe also pro Buch das Feld "Rang", in dem die Anzahl des gekauften Buches aktualisiert wird.

    Beispiel:

    ----------------------+------------+
    Buch | Rang |
    ----------------------+------------+
    Buch 1 | 5 |
    ----------------------+------------+
    Buch 2 | 8 |
    ----------------------+------------+
    Buch 3 | 2 |
    ----------------------+------------+

    "Rang" ist eigentlich gleich "verkaufte Exemplare"!

    Demnach müßte das Buch 2 auf Rang 1 sein., Buch 1 auf Rang 2 und Buch 3 auf Rang 3.

    Ich keine Ahnung, wie ich das umsetzen soll.

    Danke im Voraus.
    Frank

  • #2
    $rang = mysql_query("SELECT Artikelnummer,Rang FROM Buecher WHERE Artikelnummer='".trim($c2[1])."'");
    Benutze "ORDER BY Rang DESC" um deine sql abfrage nach absteigendem rang zu sortieren

    Kommentar


    • #3
      Danke für die rasche Antwort. Das ist nicht mein Problem. Sortieren ist ja einfach. Das Problem ist folgendes:

      Ich kann mir das Buch euf einer Auswahlseite mit den Details anzeigen lassen. Und ich möchte jetzt genau für dieses Buch (beispielsweise Buch 2) den Rang anzeigen lassen.

      Oder stehe ich jetzt auf dem Schlauch?

      Kommentar


      • #4
        $rank=mysql_query(SELECT COUNT(*) FROM `Buecher` WHERE `rang` > (SELECT `rang` FROM `Buecher` WHERE `Artikelnummer` = '.$buch.')');

        $rank+=1;

        echo $rank;

        Also, du zählst alle Artikel, die vor dem gewünschten Artikel sind und den Wert erhöst du um 1, dann hast du den Rang.

        Ich finde es etwas ungeschickt, das Feld, in dem steht wie oft ein Artikel verkauf wurde Rang zu nennen

        Wenn die Unterabfrage nicht klappt, dann mach die vorher separat.

        cu
        Xfer

        Kommentar


        • #5
          @Xfer,

          danke, die Idee war genau richtig.

          Ich habe es aber wohl wieder verunstaltet

          So funktioniert es:

          PHP-Code:
          <?php
          $y 
          mysql_query("SELECT Artikelnummer,Xverkauft FROM Buecher WHERE Artikelnummer='".$array_buch['Artikelnummer']."'");
                
          $array mysql_fetch_array($y);
                
          $rang mysql_query("SELECT Xverkauft FROM Buecher WHERE Xverkauft>'".$array['Xverkauft']."'");
                
          $zeilen_rang mysql_num_rows($rang);      
                
          $rang_neu $zeilen_rang+1;
          ?>
          Xverkauft entspricht jetzt Rang. Das war wirklich etwas unglücklich.

          Nochmals Danke.
          Frank

          Kommentar


          • #6
            mysql_num_rows würe ich nicht nehmen, weil dann sehr viele Daten abgefragt werden, nimm lieber COUNT(*), dann gibt er nur eine zeile mit der Anzahl der Datensätze zurück.

            Kommentar


            • #7
              Also ich habe es jetzt mit COUNT gemacht. Funktioniert einwandfrei. Danke.

              Frank

              Kommentar

              Lädt...
              X