SQL Ausgabe in Tabelle

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

  • SQL Ausgabe in Tabelle

    Hallo PHP-User,

    ich bin absoluter Neuling, habe eine Frage und hoffe hier im Forum auf eine Antwort.

    Ich habe eine SQL-Spalte und möchte diese gerne als Tabelle ausgeben.

    z.B. die SQL-Spalte heist : IP
    die Tabelle heist : xxx_75109_xxx

    nun möchte ich folgende Tabellenausgabe haben, die mir die doppelten einträge zählt.



    Für eine Antwort und Hilfestelung wäre ich dankbar

    Danke - Manuela

  • #2
    so gehts:

    SELECT ip, count( ip ) AS anzahl
    FROM `test`
    GROUP BY ip

    gruss

    Kommentar


    • #3
      Danke MoRtAlAn für die schnelle Antwort,
      jeoch klappt das nicht.

      Ich habe nun folgenden Code benutzt :

      <?
      $sql = "SELECT ip, count( ip ) AS anzahl
      FROM test GROUP BY ip";
      $res = mysql_query($sql);
      $hits = mysql_result($res, 0);
      echo $hits
      ?>

      und bekomme folgendes Ergebnis :

      10.0.0.1

      Häääää ?

      Gruß Manuela

      Kommentar


      • #4
        hier, nur noch db-verbindung und ausgabe anpassen:

        PHP-Code:
        <?php
        $sql 
        'SELECT ip, count( ip ) AS anzahl FROM `test` GROUP BY ip LIMIT 0, 30';
        mysql_connect"192.168.208.222""root""") or die( errorhandle($mess));
        mysql_select_db"test" ) or die( errorhandle($mess));

        $result mysql_query($sql);

        while (
        $row mysql_fetch_array($result)) {
                echo 
        "Die IP ".$row[ip]." kommt ".$row[anzahl]."x vor<br>";
            }
        ?>
        gruss

        Kommentar


        • #5
          Jo, das mit den Anzeigen funktioniert nun,
          jedoch möchte ich dieses in einer Tabelle Anzeigen mit
          in dem die einzelnen Tabellen eine andere Farbe haben
          und mit dem höchsten Anzahl-Wert beginnend.

          Ich habe mir gedacht das ich die Tabelle mit folgender Funktion
          aufbaue.

          PHP-Code:
          <?
          function bgColor()
          {   static $color = 0xAAAAFF;
               $color ^= 0x444411;
               return "\"#".dechex($color)."\"";
          }
          ?>
          Nun habe ich versucht folgenden Code mit einer Table-Anweisung
          PHP-Code:
          <tr>
              <td bgcolor=<?php echo bgColor()?>><?"IP".$row[ip].?>"</td>
            </tr>
          in die While-Schleife mit ein zu binden, jedoch klappt das nicht

          Gruß Manuela

          Kommentar


          • #6
            O.K. habe es geschaft, trotzdem D A N K !

            Falls einen interessiert hier der Quellcode :

            PHP-Code:
            <HTML>
            <
            HEAD>
            <
            TITLE>Abfrage der SQL-Tabelle Sortierte Liste</TITLE>
            </
            HEAD>
            <
            font size=4>Abfrage der SQL-Tabelle Sortierte Liste</font><br>
            <
            script language="php">

              
            $db_server "Server";
            /* Datenbankname */
              
            $db_name "datenbankname";
            /* Datenbankuser */
              
            $db_user "datenbankusername";
            /* Datenbankpasswort */
              
            $db_passwort "datenbankpasswort";
            $db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);

              if (
            $sortnach=="")
                {
                 print 
            "sortiert nach Hostname";
                 
            $abfrage MySQL_db_query("datenbankname","select hostname, count(hostname) as hits from pphl_85245_logs as hits GROUP BY hostname ORDER BY hits DESC LIMIT 0, 10");
                }
              else
               {
                 print 
            "sortiert nach $sortnach<br>";
                 
            $abfrage MySQL_db_query("datenbankname","select $sortnach, count($sortnach) as hits from pphl_85245_logs as hits GROUP BY $sortnach ORDER BY hits DESC LIMIT 0, 10");
                }

              
            $z=MySQL_num_rows($abfrage);
              
            $s=MySQL_num_fields($abfrage);
              print 
            "<table border=1 bgcolor=lightgreen>\n";
              print 
            "<tr bgcolor=red>";
              for (
            $j=0$j<$s$j++) { $fn=MySQL_fieldname($abfrage,$j); print "<td><b>$fn</b></td>";}
              print 
            "</tr>";
              for (
            $i=0$i<$z$i++)
                {
                  print 
            "<tr>\n";
                  
            $zeile=MySQL_fetch_array($abfrage);
                  for (
            $j=0$j<$s$j++) { print "  <td>$zeile[$j]</td>\n";}
                  print 
            "</tr>\n";
                }
              print 
            "</table>\n";
              print 
            date("Y-m-d H:i:s");
            </
            script>

            <
            FORM action=award.php method=POST>
            Neu Sortieren nach:
              <
            select name="sortnach">

                <
            option selected value="hostname"  >Hostname
                
            <option value="ip"                             >IP
                
            <option value="referer"                     >Referer
                
            <option value="proxy"                       >Proxy
                
            <option value="Proxy_ip"                  >Proxy IP
                
            <option value="Proxy_hostname"     >Proxy Hostname

              
            </select>
              <
            input type="submit" Value="Sortieren">
            </
            FORM>

            </
            BODY>
            </
            HTML
            Gruß Manuela
            Zuletzt geändert von manuelakersten; 07.11.2002, 14:11.

            Kommentar


            • #7
              PHP-Code:
               <select name="sortnach">

                  <
              option selected value="hostname"  >Hostname</option>
                  <
              option value="ip"                             >IP</option>
                  <
              option value="referer"                     >Referer</option>
                  <
              option value="proxy"                       >Proxy</option>
                  <
              option value="Proxy_ip"                  >Proxy IP</option>
                  <
              option value="Proxy_hostname"     >Proxy Hostname</option>

                </
              select
              Du musst Option auch wieder schliessen, sonst gibt es Probleme.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar


              • #8
                Danke,

                jetzt habe ich doch eine Frage, wenn ich keine Auswahl für den Benutzer
                des Tables abfragen möchte, sondern dem User die Möglichkeit
                geben möchte, die Tabellen mit einer Checkbox aus zu wählen,
                wie realisiere ich das, denn zwischen den Strings muß erstensein Komma stehen und wenn eine Checkbox nicht angeklickt wird, wird es eine Fehlermeldung geben.



                Für Hilfe wäre ich dankbar

                Gruß Manuela

                Kommentar


                • #9
                  Versuche doch mal folgendes. Vorraussetzung hierfür ist, das du die Checkboxen alle wie folgt benennst:
                  Beispiel:
                  PHP-Code:
                  tabelle[] 
                  Damit erzeugst du einen Array. Auf der nächsten Seite greifst du dann wie folgt auf den Array zu und baust das Statement...
                  PHP-Code:
                  for ($i=0;$i<=count($tabelle)-1;$i++) {
                    
                  $statement .= $tabelle[$i];
                    if (
                  $i count($tabelle)) {
                      
                  $statement .= ", ";
                    }

                  Das ist jetzt nur ein Beispiel. Könntest es auch mit einer while schleife, oder ganz anners machen
                  Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                  Kommentar


                  • #10
                    Mhhhh, die Funktionsweise vom zweiten Script verstehe ich, jedoch nicht wo ich dieses einfügen soll und das erste mit 'tabelle[]' überhaupt nicht.

                    Sorry aber ich bin Anfänger, wäre Super wenn Du mir das etwas genauer erklären könntest ( vielleicht mit einem Beispiel aus meinem Script :-) )

                    Danke im voraus

                    Gruß Manuela

                    Kommentar


                    • #11
                      Dein Formular, das momentan aus einer ComboBox besteht muss ja erst einmal geändert werden. So das du für jedes Item (Tabelle) eine Checkbox hast.

                      PHP-Code:
                      <FORM action=award.php method=POST>
                      Neu Sortieren nach:
                        <
                      input type=checkbox name=sortnach[] value="hostname">
                        <
                      input type=checkbox name=sortnach[] value="ip">
                        <
                      input type=checkbox name=sortnach[] value="referer">
                        <
                      input type=checkbox name=sortnach[] value="proxy">
                        <
                      input type=checkbox name=sortnach[] value="Proxy_ip">
                        <
                      input type=checkbox name=sortnach[] value="Proxy_hostname">

                        <
                      input type="submit" Value="Sortieren">
                      </
                      FORM
                      So das ist dein Form. Und nun musst du das noch in deinem Script, bevor du die SQL Abfrage macht, einfügen.
                      PHP-Code:
                      //Wenn keine Checkbox geklickt ist, dann wird nur hostname benutzt
                      if (empty($sortnach)) {
                        
                      $sortnach[] = "hostname";
                      }

                      //Bilden des benötigten Strings für SQL Query
                      for ($i=0;$i<=count($sortnach)-1;$i++) {
                        
                      $statement .= $sortnach[$i];
                        if (
                      $i count($sortnach)) {
                          
                      $statement .= ", ";
                        }
                      }

                      print 
                      "sortiert nach $statement <br>";
                      $abfrage MySQL_db_query("datenbankname","select $statement , count($sortnach) as hits from pphl_85245_logs as hits GROUP BY $statement ORDER BY hits DESC LIMIT 0, 10");

                      $z=MySQL_num_rows($abfrage);
                      $s=MySQL_num_fields($abfrage); 
                      Noch fragen?
                      Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                      Kommentar


                      • #12
                        S U P E R - DANKE FÜR DIE MÜHE,
                        jedoch bekomme ich folgende Fehlermeldungen :

                        PHP-Code:
                        Warningmysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/web625/html/award.php on line 44

                        Warning
                        mysql_num_fields(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/web625/html/award.php on line 45 
                        Ich habe die Scrippasagen ersetzt :

                        PHP-Code:
                        <HTML>
                        <
                        HEAD>
                        <
                        TITLE>Abfrage der SQL-Tabelle Sortierte Liste</TITLE>
                        </
                        HEAD>
                        <
                        font size=4>Abfrage der SQL-Tabelle Sortierte Liste</font><br>

                        <
                        script language="php">
                          
                        $db_server "xxx";
                        /* Datenbankname */
                          
                        $db_name "xxx1";
                        /* Datenbankuser */
                          
                        $db_user "xxx";
                        /* Datenbankpasswort */
                          
                        $db_passwort "xxx";
                        $db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort);

                          
                        //Wenn keine Checkbox geklickt ist, dann wird nur hostname benutzt

                        if (empty($sortnach)) {

                          
                        $sortnach[] = "hostname";

                        }

                        //Bilden des benötigten Strings für SQL Query

                        for ($i=0;$i<=count($sortnach)-1;$i++) {

                          
                        $statement .= $sortnach[$i];

                          if (
                        $i count($sortnach)) {

                            
                        $statement .= ", ";

                          }

                        }

                        print 
                        "sortiert nach $statement <br>";


                        $abfrage MySQL_db_query("xxx","select $statement , count($sortnach) as hits from pphl_85245_logs as hits GROUP BY $statement ORDER BY hits DESC LIMIT 0,10");

                        $z=MySQL_num_rows($abfrage);    // FEHLERMELDUNG
                        $s=MySQL_num_fields($abfrage);    // FEHLERMELDUNG

                        print "<table border=1 bgcolor=lightgreen>\n";
                          print 
                        "<tr bgcolor=red>";
                          for (
                        $j=0$j<$s$j++) { $fn=MySQL_fieldname($abfrage,$j); print "<td><b>$fn</b></td>";}
                          print 
                        "</tr>";
                          for (
                        $i=0$i<$z$i++)
                            {
                              print 
                        "<tr>\n";
                              
                        $zeile=MySQL_fetch_array($abfrage);
                              for (
                        $j=0$j<$s$j++) { print "  <td>$zeile[$j]</td>\n";}
                              print 
                        "</tr>\n";
                            }
                          print 
                        "</table>\n";
                          print 
                        date("Y-m-d H:i:s");
                        </
                        script>

                        <
                        FORM action=award.php method=POST>

                        Neu Sortieren nach:

                          <
                        input type=checkbox name=sortnach[] value="hostname">

                          <
                        input type=checkbox name=sortnach[] value="ip">

                          <
                        input type=checkbox name=sortnach[] value="referer">

                          <
                        input type=checkbox name=sortnach[] value="proxy">

                          <
                        input type=checkbox name=sortnach[] value="Proxy_ip">

                          <
                        input type=checkbox name=sortnach[] value="Proxy_hostname">



                          <
                        input type="submit" Value="Sortieren">

                        </
                        FORM>

                        </
                        BODY>
                        </
                        HTML
                        Den falschen Syntax habe ich markiert.

                        Für Hilfe wäre ich dankbar

                        Gruß Manuela

                        Kommentar


                        • #13
                          Versuch mal das

                          PHP-Code:
                          $abfrage MySQL_db_query("xxx","select $statement , count($sortnach) as hits from pphl_85245_logs as hits GROUP BY $statement ORDER BY hits DESC LIMIT 0,10"); 
                          Ans Ziel kommt nur der, der auch eins hat. www.e-cross.info

                          Kommentar


                          • #14
                            Ne, leider ohne Erfolg **schnieeeffff **

                            Gruß Manuela

                            Kommentar


                            • #15
                              PHP-Code:
                              $db MYSQL_CONNECT($db_server,$db_user,$db_passwort); // erste Änderung


                              $abfrage MySQL_db_query("xxx","select $statement , count($sortnach) as hits from pphl_85245_logs as hits GROUP BY $statement ORDER BY hits DESC LIMIT 0,10")or die(mysql_error());// Zweite Änderung 
                              Probiers mal so!
                              Und dann poste die Fehlermeldung noch mal!
                              *winks*
                              Gilbert
                              ------------------------------------------------
                              Hilfe für eine Vielzahl von Problemen!!!
                              http://www.1st-rootserver.de/

                              Kommentar

                              Lädt...
                              X