Ankündigung

Einklappen
Keine Ankündigung bisher.

[Anfänger] Daten Sortieren und Filtern mit Mysql

Einklappen

Neue Werbung 2019

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

  • [Anfänger] Daten Sortieren und Filtern mit Mysql

    Hallo,

    ich bin ein Blutiger anfänger was PHP angeht und was Mysql angeht noch mehr.
    Ich habe auch bereits versucht an die informationen ranzukomemn die ich suche in dem ich google und andere quellen ausgefragt habe.

    also ich habe eine tabelle.. es ist eine Kommentartabelle...
    In der Tabelle werden Kommenatre für Bilder abgelegt, das heist. es ist so das Pro Bild auch mehrere Kommentare abgelegt sind.

    Mein vorhaben: ich möchte aus dem Datenbank die letzten 15 oder 20 Kommentare auslesen und zwar so das aber pro bild nur ein Kommentardatensatz vorhanden ist.

    Also, ich möchte nacher in meinem array diese daten drinn haben um damit weiterarbeiten zu können.

    Mit welcher funktionen könnte ich das machen, da ich wirklich sehr frisch einsteige weis ich nicht nach welcher funktionen ich suchen muss.

    vielen dank im vorraus
    faruk


  • #2
    schau dir mal das an:

    http://php.benscom.com/manual/de/fun...etch-array.php

    fals du ein bischen code zur veranschaulichung hast, her damit
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      ich habe gerade gemerkt ich muss von ganz vorne...

      daher ein schritt nach dem anderen..

      um eine tabelle auszulesen benutze ich folgende query anweisung:
      PHP-Code:
      <?php
      $result 
      $db->query("SELECT * FROM bb".$n."_jgs_galerie_kommentar ORDER BY kommentarzeit DESC  LIMIT 0, 10");
      ?>
      um es anzeigen zu lassen dies hier:
      PHP-Code:
      <?php
      print_r
      ($result);
      ?>
      ich bekomme aber lediglich:
      deResource id #47
      angezeigt


      müsste ich jetzt den array $result mit mysql-fetch-array in ein asoziativen array verwandeln, mache ich das am besten in einer for each schleife?

      Kommentar


      • #4
        jein, $result ist aus php kein Feld sondern eine resource.
        mit mysql_fetch_array/row/assoc/object liest Du darüber jeweils einen Datensatz aus.

        Bei http://de3.php.net/mysql_fetch_array stehen auch Beispiele, an denen Du Dich orientieren kannst/sollst.

        Von welcher Klasse ist $db ein Objekt? (Anders gefragt: Was für eine Datenbankklasse verwendest Du? Gibt es dafür evtl auch eine Funktion wie zB fetch_row?)

        Kommentar


        • #5
          So ist besser:

          <?php
          $result = $db->query("SELECT * FROM bb".$n."_jgs_galerie_kommentar ORDER BY kommentarzeit DESC LIMIT 0, 10");

          while($row = mysql_fetch_row($result))
          {
          echo"Feld1 von Tabelle: $row[0]";
          echo"Feld2: $row[1]";
          echo"Feld3: $row[2]";

          usw...
          }
          ?>

          Kommentar


          • #6
            da ich wirklich sehr frisch einsteige weis ich nicht nach welcher funktionen ich suchen muss.
            Dann solltest du erst mal die Grundlagen lernen:

            http://www.php.net/manual/de
            http://www.php-faq.de
            http://www.schattenbaum.net/php/ (leider etwas veraltet)
            http://www.galileocomputing.de/openbook/php4 (leider etwas veraltet)
            http://tut.php-q.net/index.html
            http://dev.mysql.com/doc/mysql/de/index.html
            http://ffm.junetz.de/members/reeg/DSP/
            http://www.phptutorials.de
            http://www.dynamic-webpages.de/05.tutorials.php

            Es bringt dir nämlich nichts, wenn du hier eine Lösung geschrieben bekommst, diese aber dann nicht verstehst.

            Gruß
            phpfan

            Kommentar


            • #7
              vielen dank, mir geht es vorerst darum das ich in den array das reinkriege was ich zum weiterarbeiten brauche.
              Richtig ist das ich die grundlagen lernen muss, deswegen habe ich letzten wochende samstag und sonntag auch ein grundlagen kurs fürPHP besucht, leider ohne Mysql, der kommt erst im dezember.

              Ich frage erst hier nach dem ich wie heute auch mehre stunden versucht habe das zu finden was ich brauche und das uch zu verstehen, nur an einem Praxisbeispiel den ich auch selber gebrauchen kann lerne ich am besten den es bringt mir nichts wenn ich das code den ich brauche nicht verstehe.. deswegen gehe ich ja auch schritt für schritt vor. Sonst könnt ich jemanden auch geld geben und der macht das für mich, nur ich will es ja lernen.

              Ich kann jetzt nach dem PHP kurs nun ein textarea auswerten und dann mit echo befehl ausgeben.. und zuvor überpüfen ob im feld auch wirklich was steht...

              wie auch immer...

              ich greife in die abfdrage des forums den ich betreibe um einfach ein username und pasworteingabe zu verhindern damit ich keine sicherheitslücken einprogrammiere...


              in der in der tabelle sind folgende spalten:
              id, imgid, comment, kommentarzeit
              Ich möchte nach kommentarzeit absteigent sortieren lassen-. das habe ichd amit geschafft
              SELECT * FROM `bb1_jgs_galerie_kommentar` order by "kommentarzeit" desc
              dann kann ich wie folgt duplikate im feld "imgid" entfernen:
              SELECT * FROM `bb1_jgs_galerie_kommentar` group by "imgid"

              gibst es nicht eine möglichkeit das ich order by und group by in einer abfrage zusammen verwenden kann?

              als resultat würde ich gerne das ich zuerst nach kommentarzeit absteigend sortiere und dann mit der spalte imgid die duplikaten bereinige so das am ende die zuletzt kommentierten bilder erhalte so aber das im array die anderen daten noch erhalten bleiben, da ich kommentarzeit, imgid, comments usw brauche...

              mein code sieht mommentan wie folgt aus:
              PHP-Code:
              <?php
              require("jgs_galerie_global.php");
              require (
              "./acp/lib/class_parse.php");

              //Die letzten 10 Kommentare
              $result $db->query("SELECT * FROM bb".$n."_jgs_galerie_kommentar ORDER BY kommentarzeit DESC  LIMIT 0, 10");
                   while(
              $row=$db->fetch_array($result)){
                      echo 
              date("j.m.Y",$row["kommentarzeit"])."  kommentar:  ".$row['comment']."
              "
              ;
                   }
                   
              ?>
              ich habe im momment nur die zeit und die komments ausgegeben um eine überpüfung zu haben.

              ergebniss:

              http://www.hobbyphotographen.de/jgs_portal.php?id=61

              Kommentar


              • #8
                erste schritt ist getan:

                die query habe ich so hinbekommen:
                PHP-Code:
                <?php
                SELECT 
                `kommentarzeit`, `imgid`,
                SUBSTRINGMAXCONCAT(LPAD(`kommentarzeit`,10,'0'),`userid`) ), 11) AS userid,
                SUBSTRINGMAXCONCAT(LPAD(`kommentarzeit`,10,'0'),`comment`) ), 11) as comment
                FROM 
                `bb1_jgs_galerie_kommentarGROUP BY `imgidorder by id desc
                ?>
                seit zwei tagen habe ich gesucht und die codes die ich fand zu verstehen um sie richtig bei mir einzusetzen...
                ich habe sie zwar nur in der sql-konsole getest aber dort funktioniert sie einwandfrei

                als nächtes brauche eine möglichkeit aus dem userid direkt den namen des users sowie den bildnamen die jeweils in einer anderen tabelle sind herauszubekommen...

                Kommentar

                Lädt...
                X