php code

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

  • php code

    tach zusammen,

    ich will ein bischen mit php anfangen, grundlegende sachen versteh ich halbwegs . jetzt möchte ich gerne die abfrage:
    [code]
    Code:
    SELECT postusername, count(*) as Tuts FROM `thread` WHERE forumid=17 and postuserid=postuserid
    group by postusername
    order by Tuts desc limit 5;
    auch mittels php code richtig ausgeben. aber ich schaff nur fehlermeldungen, die sich bspw auf ne zeile bezieht, die auskommentiert ist
    für euch is das bestimmt ein klaks, wär nett wenn mir jemand hilft

    thx Pleite

  • #2
    poste mal deinen Code! Du bekommst ja die Zeile, in der der Fehler auftritt, poste mal so 4-5 Zeilen davor und danach.

    poste aber bitte als PHP-code

    gruss

    Kommentar


    • #3
      ok, mach ich...aber nicht lachen, sind meine ersten versuche

      PHP-Code:
      $test $DB_site->query("SELECT postusername, count(*) as Tuts FROM `thread` WHERE forumid=17 and postuserid=postuserid GROUP BY postusername ORDER BY Tuts DESC LIMIT 5");
      //$top5 = $mysql_fetch_array($test);
      while ($row mysql_fetch_array($test)) {
            print 
      "ID : ".$row["id"]."\n\n";
            print 
      "Haus: ".$row["haus"]."\n";
          }

      // echo "Anzahl der Elemente in \$top5: ".count($top5); 
      die fehlermeldung kam mit dem unterem echo. die while schleife hab ich beim googlen gefunden, geht aber auch nich . ich bin mir auch gar nicht sicher ob top 5 ein feld is, selbst wenn weiss ich nich, wie ich wirklich damit umzugehen habe, ich hab nur ein paar vb grundkenntnisse auch in bezug auf felder, da war es für mich halt logischer. vielleicht kannst du mir (wenn du zeit hast ) mal ein paar tip auch zur php syntax geben, die sache mit den punkten versteh ich nich so wirklich (wie das zb: .$row["haus"]."\n) und und und

      thx Pleite

      Kommentar


      • #4
        Die Punkte unterbrechen den PHP-Code zur Ausgabe von Werten.

        Schau mal in die Datenbank in der Tabelle nach ob da eine Spalte mit dem Namen "top5".
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          so richtig versteh ich das mit den punkten trotzdem nich ...gibts nich irgendwie nen debugger, womit man zeile pro zeile abarbeiten kann und man sich vielleicht auch die werte der einzelnen variablen anzeigen lässt? würd mir zum grundverständnis ungemein weiter helfen...

          mit dem top5 war wieder ein fehler von mir ...war nur einer der versuche, vielleicht sollte ich nochmal erklären, was ich genau vorhab
          ich habe ein vbulletin board mit ner art portal davor. auf der seite des portals möchte ich ne toplist ausgeben, und zwar die user und die anzahl der gestarteten themen des users in einem bestimmten forum (möchte hier im beispiel jetzt zunächst die user ausgeben, die die meinsten tutorials gepostet haben). ich hab mal ein bischen mit dem phpmyadmin rumgespielt und mir die nötige abfrage zusammen gebastelt, wenn ich diese ausführ gibt mir der phpmyadmin so etwas in der art aus:

          Code:
           postusername  |  Tuts
                     --------------------|---------
                      user1               |   8
                      user2               |   5
                          .                   |   .
                      user5               |   2
          so in der art hätte ich das gerne auf der portalseite ausgeben, halt ohne den spaltenname, einfach nur:

          user1 8


          ich sag nochmal danke

          greetz Pleite

          Kommentar


          • #6
            Na den mach doch einfach ein db-Abfrage die ungefähr so aussieht:
            PHP-Code:
            $res mysql_query("SELECT * FROM tabelle_user ODER BY hit_spalte_für_tuts DESC LIMIT 0,5")
            while(
            $row mysql_fetch_array($res))
            {
            echo 
            "$row[spalte_user] hat $row[hit_spalte_für_tuts] geschrieben<br>";

            Folgende Wörter musst du ändern:
            tabelle_user => Der Tabellenname
            hit_spalte_für_tuts => Spaltenname der die Tuts zählt
            spalte_user => Spaltenname wo der Username drin ist
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              Da isses ja mittlerweile munter weitergegenagen, macht nix ich hab Dir Deinen zuerst geposteten Code etwas umgeschrieben. Du Verwendest darin einen Backstick als ` einfaches Hochkomma anstatt ' . Vielleicht ist das die Ursache für die Probleme. Desweiteren gibst Du die Inhalte $row["id"] und $row["haus"] aus, wobei diese nicht selektiert wurden.
              PHP-Code:
              <?php
                  mysql_connect
              ("localhost""mysql_user""mysql_password") or die("could not connect"); // Connect zur DB
                  
              mysql_select_db("mydb"); // Datenbank auswählen

                  
              $select "SELECT postusername, count(*) as Tuts
                                  FROM 'thread'
                                  WHERE
                                      forumid=17
                                      and
                                      postuserid=postuserid
                                  GROUP BY postusername
                                  ORDER BY Tuts DESC
                                  LIMIT 5"
              ;
                  
                  
              $test mysq_query($select);

                  while (
              $row mysql_fetch_array($test)) {
                        print 
              "postusername: ".$row[postusername]."<br>\n";
                        print 
              "Tuts: ".$row["Tuts"]."<br>\n";
                  }
                  
                  
              mysql_free_result($test);
              ?>

              Kommentar


              • #8
                danke euch, ich werds mal eben testen und meld mich gleich nochmal

                Kommentar


                • #9
                  hmm, irgendwie gefällt dem wohl meine abfrage nicht

                  Code:
                  Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\programme\webserver\webroot\soi\test.php on line 17
                  
                  Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\programme\webserver\webroot\soi\test.php on line 22

                  Kommentar


                  • #10
                    Was ist Zeile 17 und 22?
                    Poste mal die Beiden.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      ich hab den code von hand mal kpl übernommen. das bsp von dir geht bei mir glaube ich nicht, weil ich keine spalte habe, die tuts zählt, mein gewünschtes ergebnis bekomme ich glaub ich nur raus, wenn ich die threads table wie in meiner abrage nehme.

                      fehler sind also in der zeile

                      PHP-Code:
                      while ($row mysql_fetch_array($test)) {

                      und

                      mysql_free_result
                      ($test); 
                      ich hab mal den aufbau der table thread mit gepostet, vielleicht könnt ihr da was ableiten


                      Code:
                      threadid      int(10)  
                      title         varchar(100) 
                      lastpost      int(10)  
                      forumid       smallint(5) 
                      pollid        int(10)  
                      open          tinyint(4) 
                      replycount    int(10)  
                      postusername  varchar(50)  
                      postuserid    int(10)  
                      lastposter    varchar(50)
                      dateline      int(10)  
                      views         int(10)  
                      iconid        smallint(5)
                      notes         varchar(250)
                      visible       smallint(6) 
                      sticky        smallint(6) 
                      votenum       smallint(5) 
                      votetotal     smallint(5) 
                      attach        smallint(5)

                      nochmal thx 4 help

                      Kommentar


                      • #12
                        War ja auch nur ein Beispiel wie es geht und nicht wie von Master doppelt Stern hand gleich ein komplettes Script.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          PHP-Code:
                          $test mysq_query($select); // Das ist falsch, hab ein L vergessen, sorry

                          $test mysql_query($select); // Das ist korrekt 

                          Kommentar


                          • #14
                            ja, das hatte ich auch geändert...die fehler traten mit 'l' auf , die meldung hatte ich aber irgendwann in meiner testphase auch, muss wohl irgendwie an meiner abfrage liegen

                            Kommentar


                            • #15
                              Also die WHERE Bedingung "postuserid=postuserid" ist für nix.
                              Und auch die Hockommas beim Tabellennamen ....

                              Probier's mal so:
                              PHP-Code:
                              $select "SELECT postusername, count(*) as Tuts
                                                  FROM thread
                                                  WHERE forumid=17
                                                  GROUP BY postusername
                                                  ORDER BY Tuts DESC
                                                  LIMIT 5"

                              Zuletzt geändert von hand; 31.07.2002, 18:59.

                              Kommentar

                              Lädt...
                              X