Group by

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

  • Group by

    Hi,

    ich hab eben feststellen müssen dass ich doch der totale SQL Noob bin, ich steh gerade mit group by etwas auf dem schlauch.

    Ich hab folgende Tabelle :

    id linkid rubrik zeit

    id ist die auto_increment id des Klicks
    link id ist eine id des links um ihn zu identifizieren anhand einer anderen tabelle, rubrik ist der referer, von wo aus drauf geklickt wurde, kann auch leer sein
    zeit ist timestamp (atm nicht wichtig)

    Ich möchte nun abfragen, welcher link in welcher rubrik wie oft geklickt wurde + gesamtzahl

    also z.B. linkid 1 wurde 15 mal von index.php aus heklickt, 10 mal von suche.php und 20 mal war der referer leer, und insgesamt 45 mal geklickt.

    mit was für einer abfrage kann man das geschickt lösen ?


    An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

  • #2
    und wie sieht dein Ansatz aus?

    Kommentar


    • #3
      Naja bis jetzt hab ich es mit Bruteforce gemacht, ich rufe alle ab mit einer id, dann zähle ich die anzahl der rubriken, dann zähle ich die anzahl der klicks pro rubrik und dann kommt die ausgabe


      An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

      Kommentar


      • #4
        http://www.mysql.com/doc/de/Counting_rows.html

        Kommentar


        • #5
          danke


          An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

          Kommentar


          • #6
            OffTopic:
            Meint er das jetzt ironisch?

            Kommentar


            • #7
              Nein, nicht Ironisch. War genau das was ich gesucht habe. hier das Ergebnis :

              PHP-Code:
              $linkid $_REQUEST['id'];
              $query "select rubrik, count(*) from counter_klicks where linkid=$linkid";

              $nowtag date("d");
              $nowmonat date("n");
              $nowjahr date("Y");
              $nowstunde date("G");
              $nowminute date("i");


              if(isset(
              $_REQUEST['zeitraum']))
              {
                
              $vontag $_POST['vontag'];
                
              $vonmonat $_POST['vonmonat'];
                
              $vonjahr $_POST['vonjahr'];
                
              $vonstunde $_POST['vonstunde'];

                
              $bistag $_POST['bistag'];
                
              $bismonat $_POST['bismonat'];
                
              $bisjahr $_POST['bisjahr'];
                
              $bisstunde $_POST['bisstunde'];
                
                
              $zeitstempelvon mktime($vonstunde,0,0,$vonmonat$vontag,$vonjahr);
                
              $zeitstempelbis mktime($bisstunde,0,0,$bismonat$bistag,$bisjahr);
                
              $query .= " && zeit > $zeitstempelvon && zeit < $zeitstempelbis";


              }
              if(!isset(
              $_REQUEST['id'])) die('Unerlaubter Aufruf !');
              $aktueller_monat date('n'time());

              if(!isset(
              $_REQUEST['monat'])) $monat $aktueller_monat;
              else 
              $monat $_REQUEST['monat'];

              require(
              'zeitraum.inc.php'); // Formular zum AUswählen des Zeitraums

              // echo('<br><br>Query: '.$query);
              $query .= " group by rubrik";
              $ergebnis mysql_query($query$db_handle) or die('Fehler bei der Datenbankabfrage');
              if(
              $ergebnis == false) die('Fehler bei der Datenbankabfrage');
              echo(
              "<table width='90%' border='1' align='center'><tr><td align='left'>Kategorie</td><td align='center' width='100'>Anzahl der Klicks</td></tr>");
              while(
              $liste mysql_fetch_row($ergebnis))
              {
                
              $rubrik $liste[0];
                if(
              trim($rubrik)==''$rubrik 'Leerer Referrer';
                echo(
              "<tr><td align='left'>$rubrik</td><td align='center' width='100'>$liste[1]</td></tr>");

              }
              $query "select count(*) from counter_klicks where linkid=$linkid";
              $ergebnis mysql_query($query$db_handle);
              $liste mysql_fetch_row($ergebnis);
              echo(
              "<tr><td align='left'>Insgesamt</td><td align='center' width='100'>$liste[0]</td></tr></table>"); 

              Das Programm list aus der tabelle 'counter_klicks' alle Klicks eines Links auf, sortiert nach der aufrufenden seite, die auch leer sein kann (ist so wenn der referrer warum auch immer leer ist)

              thx für die Hilfe, ich hab zwar gesucht aber naja, ihr kennt das ja, wenn man die lösung nicht kennt sucht man meistens nach dem falschen bzw sieht nicht dass es die Lösung ist.


              An mich bitte keine unaufgeforderten E-Mails senden (ausser ihr seid bereit geld zu zahlen, dann gerne )

              Kommentar

              Lädt...
              X