Limit bei MySQL-Abfrage

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

  • Limit bei MySQL-Abfrage

    Hallo, vielleicht können mir die Experten einen einfachen Tip geben, wie ich die Ausgabe eines MySQL-Textes auf eine bestimmte Anzahl von Wörtern (und nicht Textzeichen!) beschränken kann.

    Ich habe vor nur einen Teil des gesamten Textinhalts, sozusagen eine Vorschau, zur Ausgabe zu bringen.

    ___________________
    Digital GreetZ
    RealOwen

    RealOwen.de
    Zuletzt geändert von RealOwen; 21.11.2005, 15:44.
    Digital Greetz
    RealOwen

    RealOwen.de

  • #2
    http://dev.mysql.com/doc/refman/5.0/...functions.html bietet dir z. B. SUBTRING_INDEX, wenn du dich auf Leerzeichen als Wortbegrenzer beschränken willst.

    Wenn nicht, lies http://dev.mysql.com/doc/refman/5.0/...functions.html oder mache es in PHP
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      hab dir was gebastelt

      PHP-Code:

      $str_string 
      "Hallo ich bin ein Text Wort6 Wort7 Wort8 Wort9";

      function 
      getlimit($in_anz_woerter$in_string$in_trennzeichen ' ')
        {
        
      $arr_woerter explode($in_trennzeichen$in_string);
        for(
      $i=0$i<$in_anz_woerter$i++)
          {
          
      $str_ausgabe $str_ausgabe.$in_trennzeichen.$arr_woerter[$i];
          }
        return(
      trim($str_ausgabe));
        }

      echo 
      getlimit(6$str_string); 
      Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

      Kommentar


      • #4
        Danke für die rasche Antwort. Wollte das auslesen über ein PHP-Script laufen lassen, wie z.B.:

        $sql = "SELECT textfeld FROM datenbankname LIMIT x";
        $result = mysql_query($sql);
        mysql_fetch_array($result);
        .
        .
        .

        Auf diese Weise bekomme ich die Ausgabe auf eine Anzahl Zeichen limitiert. Wie kann ich das ganze umschreiben um auf eine Anzahl Wörter zu kommen?

        _______________
        Digital GreetZ
        RealOwen

        RealOwen.de
        Digital Greetz
        RealOwen

        RealOwen.de

        Kommentar


        • #5
          mit limit kannste so garnicht arbeiten! damit sagt du nur die anzahl der datensätze die du angezeigt bekommen willst.

          Schau dir mal genau an, was meine funktion macht
          Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

          Kommentar


          • #6
            Original geschrieben von hoffmann-c
            hab dir was gebastelt

            PHP-Code:

            $str_string 
            "Hallo ich bin ein Text Wort6 Wort7 Wort8 Wort9";

            function 
            getlimit($in_anz_woerter$in_string$in_trennzeichen ' ')
              {
              
            $arr_woerter explode($in_trennzeichen$in_string);
              for(
            $i=0$i<$in_anz_woerter$i++)
                {
                
            $str_ausgabe $str_ausgabe.$in_trennzeichen.$arr_woerter[$i];
                }
              return(
            trim($str_ausgabe));
              }

            echo 
            getlimit(6$str_string); 
            Vielen Dank - klingt ganz logisch, werde es mal versuchen. Die Variable $str_string kann ich ja mit dem "SELECT...."-Befehl definieren, oder?

            _______________
            Digital GreetZ
            RealOwen

            RealOwen.de
            Digital Greetz
            RealOwen

            RealOwen.de

            Kommentar


            • #7
              da kommt das ergebnis deines statements rein!

              Versuchs einfach mal!

              Als ob der Text, der jetzt in der Variable steht aus einer Spalte aus deiner DB kommt!

              Die Funktion kürzt nach deinen wünschen
              Beziehung? Klar habe ich mit Beziehungen zu tun ... ich bin Datenbankprogrammierer :-D

              Kommentar


              • #8
                Hallo - das Script läuft einwandfrei - Danke nochmal, leider gibt es noch eine Hürde zu meistern: eventuell vorhandene html-tags für die Text-Formatierung.

                Hier das etwas abgeänderte Script:

                PHP-Code:
                .
                .
                .
                $result mysql_query("SELECT * FROM news ORDER BY ID DESC LIMIT 1");
                while (
                $row mysql_fetch_array($result)) {
                $str_string $row['text'];
                    function 
                getlimit($in_anz_woerter$in_string$in_trennzeichen ' ')
                      {
                      
                $arr_woerter split($in_trennzeichen$in_string);
                      for(
                $i=0$i<$in_anz_woerter$i++)
                        {
                        
                $str_ausgabe $str_ausgabe.$in_trennzeichen.$arr_woerter[$i];
                        }
                      return(
                trim($str_ausgabe));
                      }
                echo 
                getlimit(3$str_string);

                Ergebnis:
                test für <br
                Verständlich, daß die Ausgabe so aussieht. Das html-tag lautete in diesem Fall <br />.... hast Du vielleicht noch ein Tip als Lösung?

                __________________
                Digital GreetZ
                RealOwen

                RealOwen.de
                Digital Greetz
                RealOwen

                RealOwen.de

                Kommentar


                • #9
                  Die Variable $in_trennzeichen = ' ' habe ich in $in_trennzeichen = '<b />' umgeschrieben und bin mit dem Ergebnis zu frieden.

                  Vielen Dank nochmal für den schnellen Support!

                  ________________
                  Digital GreetZ
                  RealOwen

                  RealOwen.de
                  Digital Greetz
                  RealOwen

                  RealOwen.de

                  Kommentar


                  • #10
                    Hallo,

                    nachdem sich nun die Funktion auf eine Ausgabe anwenden lässt habe ich das Problem mit der Anwendung in einer Mehrfachausgabe. Die Fehlermeldung zum angehängten Script lautet: Fatal error: Cannot redeclare getlimit() (previously declared in ...
                    Hat jemand nen Lösungsvorschlag?

                    Script:
                    PHP-Code:
                    $result mysql_query("SELECT ID,text FROM news WHERE type=1 ORDER BY ID DESC LIMIT 2");
                        while (
                    $row mysql_fetch_array($result)) {
                            
                    $newsid $row['ID'];
                            
                    $str_string $row['text'];
                            
                    /* Ausgabe limitieren */
                            
                    function getlimit($in_anz_woerter$in_string$in_trennzeichen '<br />')
                                  {
                                  
                    $arr_woerter split($in_trennzeichen$in_string);
                                  for(
                    $i=0$i<$in_anz_woerter$i++)
                                      {
                                       
                    $str_ausgabe $str_ausgabe.$in_trennzeichen.$arr_woerter[$i];
                                    }
                                  return(
                    trim($str_ausgabe));
                              }
                            echo 
                    '<td width="50%" valign="top" align="justify">'.getlimit(1$str_string).'</td>';
                        }
                        echo 
                    '</tr></table><br>'
                    _________________
                    Digital Greetz
                    RealOwen

                    RealOwen.de
                    Digital Greetz
                    RealOwen

                    RealOwen.de

                    Kommentar


                    • #11
                      Funktion außerhalb der Schleife deklarieren.

                      GRUNDLAGEN!!!

                      Kommentar


                      • #12
                        AUA AUA AUA!!!! Natürlich, klaro.....

                        ...lasse mich besser doch wieder auf blutiger Anfänger zurückstufen...

                        Tkx für den Wink mitm Zaunpfahl

                        _________________
                        Digital Greetz
                        RealOwen

                        RealOwen.de
                        Digital Greetz
                        RealOwen

                        RealOwen.de

                        Kommentar

                        Lädt...
                        X