daniel: substr()

hallo,

ich hab mal wieder so eine anfängerfrage...

ich will einen text aus einer DB ausgeben.
soweit kein problem.
nur will ich nicht den ganzen text anzeigen, sondern nur die ersten paar zeichen (so wie bei heise ;-) )

hab mich mal schlau gemacht, und ich denke ich kann mich
mit substr() anfreunden?

mein problem ist nur: die funktion macht irgendwie GAR nichts???
also keine fehlermeldung , nichts??

vielleicht mal ein bißchen code:

$string=$row[1];
substr($string,0,10);

echo $string;

kann es sein, daß $string gar nicht als textstring erkannt wird?
weil es ja aus $row[1] , einem array, kommt?
ich dachte ich umgehe das, indem ich einfach dem inhalt aus dem array eine neue variable zuweise , aber irgendwie klappt das nicht??

hat einer von euch ne idee???

güße daniel

  1. nur will ich nicht den ganzen text anzeigen, sondern nur die ersten paar zeichen (so wie bei heise

    Hallo!
    Was ist denn das für eine Datenbank?
    Mit mysql würde ich es so tun:
    select left(DATENBANK_FELD,ANZAHL_ANZUZEIGENDER_ZEICHEN) from TABELLE

    LG
    Steffi

  2. Hi!

    hab mich mal schlau gemacht, und ich denke ich kann mich
    mit substr() anfreunden?

    gut!

    mein problem ist nur: die funktion macht irgendwie GAR nichts???
    also keine fehlermeldung , nichts??

    vermutlich ist $string leer!

    vielleicht mal ein bißchen code:

    $string=$row[1];
    substr($string,0,10);

    echo $string;

    was passiert denn wenn Du statt diesen Code zum testen mal

    echo $row[1];

    schreibst? was passiert dann? Denn das sieht eigentlich richtig aus, bis auf die Tatsache, das Du den alten String ausgibst, und nicht den gekürzten, dazu müßtest Du

    $string = substr($string,0,10);

    schreiben, kannst übrigens direkt

    echo substr($row[1],0,10);

    schreiben :-)

    kann es sein, daß $string gar nicht als textstring erkannt wird?

    Das wäre egal

    weil es ja aus $row[1] , einem array, kommt?

    Wenn darin ein String steht sollte es eigentlich gehen!

    ich dachte ich umgehe das, indem ich einfach dem inhalt aus dem array eine neue variable zuweise , aber irgendwie klappt das nicht??

    mir sieht es eher so aus, als sttünde nichts in deinem Array, oder wenigstens nicht das besagte element [1]. Du weißt auch, das arrays bei 0 anfangen, gel?  also wenn DU nur ein Element hast, steht das in [0], und [1] ist leer!

    hat einer von euch ne idee???

    Wie gesagt, teste mal

    echo $row[1];

    oder

    echo $row[0];

    Grüße
    Andreas

    1. hi andreas,

      das der $row[1] leer ist, das dachte ich mir auch zuerst.
      aber er ist es definitiv nicht.
      wenn ich echo $row[1] ausgeben lasse, bekomme ich exakt das,
      was ich in der DB stehen habe...
      bei $row[0] und $row[2] auch.

      also vielleicht poste ich einfach mal den ganzen ausschnitt:

      while ($row = mysql_fetch_row($base))
          {
            $string=$row[1];
             substr($string,0,10);
             echo "<tr>
                     <td style='border-bottom: 1px solid black; border-right: 1px solid black' valign='top'>$row[2]</td>
                     <td style='border-bottom: 1px solid black; border-right: 1px solid black' valign='top'>$row[0]</td>
                     <td style='border-bottom: 1px solid black; border-right: 1px solid black'>$string<td>
                    </tr> ";
            }

      wie gesagt echo "<td>$row[1]</td> gibt mir ein "perfektes" ergebnis aus....
      wahrscheinlich ist es irgendeine kleinigkeit im code, die mir einfach nicht auffällt (hab erst vor ein paar wochen nebenbei mit php angefangen...)

      siehst du einen fehler im code, der mir nicht auffällt?

      vielen dank für deine hilfe
      grüße daniel

      1. hi andreas,

        das der $row[1] leer ist, das dachte ich mir auch zuerst.
        aber er ist es definitiv nicht.
        wenn ich echo $row[1] ausgeben lasse, bekomme ich exakt das,
        was ich in der DB stehen habe...
        bei $row[0] und $row[2] auch.

        also vielleicht poste ich einfach mal den ganzen ausschnitt:

        while ($row = mysql_fetch_row($base))
            {
              $string=$row[1];
               substr($string,0,10);

        ^^^^^^^^^^

        da muß $string=substr($string,0,10); hin!

        echo "<tr>
                       <td style='border-bottom: 1px solid black; border-right: 1px solid black' valign='top'>$row[2]</td>
                       <td style='border-bottom: 1px solid black; border-right: 1px solid black' valign='top'>$row[0]</td>
                       <td style='border-bottom: 1px solid black; border-right: 1px solid black'>$string<td>
                      </tr> ";
              }

        wie gesagt echo "<td>$row[1]</td> gibt mir ein "perfektes" ergebnis aus....
        wahrscheinlich ist es irgendeine kleinigkeit im code, die mir einfach nicht auffällt (hab erst vor ein paar wochen nebenbei mit php angefangen...)

        siehst du einen fehler im code, der mir nicht auffällt?

        s.o., und probiere doch bei der Ausgabe mal schritt für Schritt zurück, bis es funktioniert, dann hast Du den Fehler!

        Andreas

        1. AHHHHHHHHHHHH!!!

          DAS genau meinte ich mit der kleinigkeit, die mir mangels erfahrung NICHT aufällt !!!!!

          danke !!!

          genau das war antürlich DAS ding, weswegen es nicht gefunuzt hat..!!

          DAAAAAAnke nochmal.... jetzt geht es !!

          grüße,
          daniel