Andy89: Problem mit strlen und substr

Hallo,

dieser Code
  <?php do {
$ausgabekopf =  $row_qcount['anzahl'].'DS'.$row_qcount['code'].'<br>';
$ausgabekopf_1 = substr($ausgabekopf, 0, strlen($ausgabekopf) - 4);
echo $ausgabekopf_1;
 } while ($row_qcount = mysql_fetch_assoc($qcount));  ?>

Gibt folgendes aus:
3DS in Tabelle bla <br>
4DS in Tabelle xya <br>
2DS in Tabelle abc <br>

ich möchte da letze <br> nicht haben, was mache ich falsch?

Danke
Andy

  1. $ausgabekopf =  $row_qcount['anzahl'].'DS'.$row_qcount['code'].'<br>';
    ich möchte da letze <br> nicht haben, was mache ich falsch?

    warum fügst du das <br> ein, wenn du es nicht haben willst?

    ansonsten - nutze strip_tags

    1. warum fügst du das <br> ein, wenn du es nicht haben willst?

      ansonsten - nutze strip_tags

      Hallo und danke Dir,

      aber ich möchte ja das <br>!
      Nur nach dem Letzten DS möchte ich es nicht.

      Andy

      1. Hi Andy89!

        aber ich möchte ja das <br>!
        Nur nach dem Letzten DS möchte ich es nicht.

        Dann füge es nur solange ein, bis der vorletzte Eintrag erreicht ist.
        Dafür brauchst du einen Zähler in der Schleife und eine Variable, die die Gesamtanzahl an Zeilen speichert.

        Außerdem könntest du das Problem sehr leicht lösen, in dem du auf das überflüssige <br> verzichtest und die Daten in einer Liste darstellst.
        Schließlich ist der HTML-Code nicht für das Aussehen, sondern für die Struktur der Daten zuständig.

        MfG H☼psel

        --
        "It's amazing I won. I was running against peace, prosperity, and incumbency."
        George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
        Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
        1. Außerdem könntest du das Problem sehr leicht lösen, in dem du auf das überflüssige <br> verzichtest und die Daten in einer Liste darstellst.
          Schließlich ist der HTML-Code nicht für das Aussehen, sondern für die Struktur der Daten zuständig.

          MfG H☼psel

          Hallo H☼psel,

          Liste ist in diesem Fall nicht möglich.
          Ich bin da vielleicht falsch rangegangen, ich habe den code in einer Anderen Datei, allerdings nicht mit <BR> sonder komma "," da klappt das, ist ja auch kein HTML
          $output .= $ebenen . ',';
          }
          $output = substr($output, 0, strlen($output) - 1);
          echo $output;

          Jetzt dachte ich, es sollte auch mit <br> funktionieren.

          Ich werde einen Zähler einbauen.

          Danke Andy

          1. Liste ist in diesem Fall nicht möglich.

            wieso - es scheint eine liste zu sein

            Ich bin da vielleicht falsch rangegangen, ich habe den code in einer Anderen Datei, allerdings nicht mit <BR> sonder komma "," da klappt das, ist ja auch kein HTML

            was hat das mit html zu tun, es ist ein string mit irgendwelche zeichen die erstmal ohne bedeutung sind

            Ich werde einen Zähler einbauen.

            auch uncool
            wenn du wirklich glaubst, dass du keine liste hättest und nur zwischen den einträgen ein <br> oder , haben willst scheib die einträge in ein array und füge dies mit implode zusammen

            1. Ich werde einen Zähler einbauen.
              auch uncool
              wenn du wirklich glaubst, dass du keine liste hättest und nur zwischen den einträgen ein <br> oder , haben willst scheib die einträge in ein array und füge dies mit implode zusammen

              Hallo suit,

              ich habe das nun in dieser Form
              $ausg[] =  $row_qcount['anzahl'].'DS'.$row_qcount['code'];
               } while ($row_qcount = mysql_fetch_assoc($qcount));
               foreach ($ausg as $ausgab) {
              $ausgabe .= $ausgab . '<br>';
               }
              $ausgabe = substr($ausgabe, 0, strlen($ausgabe) - 4);
              echo $ausgabe;

              und ich bekomme Die Ausgabe so wie gewünscht.
              Da ich kein PHP Profi auch keine "Heimwerker" sondern nur Amateur bin, frage ich, ist es das was Du meintest?

              Andy

              1. wenn du wirklich glaubst, dass du keine liste hättest und nur zwischen den einträgen ein <br> oder , haben willst scheib die einträge in ein array und füge dies mit implode zusammen

                Da ich kein PHP Profi auch keine "Heimwerker" sondern nur Amateur bin, frage ich, ist es das was Du meintest?

                egal ob man heimwerker, profi oder amateur ist, schadet es nicht dokumentationen zu lesen - wenn ich dir schon exakt sage, welche funktion (implode) du verwenden sollst, wäre es nett gewesen, zumindest zu versuchen irgendetwas mit dieser zu bauen

                dieses:
                foreach ($ausg as $ausgab) {
                  $ausgabe .= $ausgab . '<br>';
                }
                $ausgabe = substr($ausgabe, 0, strlen($ausgabe) - 4);

                lässt sich durch folgendes ersetzen (bzw sollte in deinem fall das selbe ergebnis liefern
                $ausgabe = implode('<br>', $ausg);

                du hast allerdings immer noch nicht beantwortet, warum die liste in deinem fall keine liste ist

                1. dieses:
                  foreach ($ausg as $ausgab) {
                    $ausgabe .= $ausgab . '<br>';
                  }
                  $ausgabe = substr($ausgabe, 0, strlen($ausgabe) - 4);

                  lässt sich durch folgendes ersetzen (bzw sollte in deinem fall das selbe ergebnis liefern
                  $ausgabe = implode('<br>', $ausg);

                  du hast allerdings immer noch nicht beantwortet, warum die liste in deinem fall keine liste ist

                  Hallo,

                  ok, ich hätte es versuchen sollen, aber ich wollte wissen warum ich das nicht hin bekomme, wo mein Fehler lag. Ich wollte den Fehler finden.

                  implode war mir total unbekannt, das nächste mal höre ich.

                  Keine Liste deswegen. Ich habe eine CSS  Datei bekommen und da sind Listen beschrieben, die kann ich nicht ändern, ich hätte also immer Listenpunkte.

                  Vielen Dank ganz besonders hierfür"egal ob man heimwerker, profi oder amateur ist, schadet es nicht dokumentationen zu lesen - wenn ich dir schon exakt sage, welche funktion (implode) du verwenden sollst, wäre es nett gewesen, zumindest zu versuchen irgendetwas mit dieser zu bauen"

                  ich werde es beherzigen.

                  Andy

                  1. Hi Andy89!

                    implode war mir total unbekannt, das nächste mal höre ich.

                    Ich finde, es ist in deinem Fall sogar die beste und übersichtlichste Lösung.

                    MfG H☼psel

                    --
                    "It's amazing I won. I was running against peace, prosperity, and incumbency."
                    George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
                    Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
                    1. Hi Andy89!

                      implode war mir total unbekannt, das nächste mal höre ich.
                      Ich finde, es ist in deinem Fall sogar die beste und übersichtlichste Lösung.

                      MfG H☼psel

                      Guten Abend,

                      ich habe das umgeschrieben und nutze nun Implode.
                      Das mit der Liste lasse ich jetzt aber, weil das wüsste ich wie es zu machen ist.
                      So habe ich was gelernt und gleich ein Beispiel.

                      Danke
                      Andy

                  2. ich werde es beherzigen.

                    das freut mich ;)

                    zur liste nochmal: was spricht gegen eine liste mit eigener klasse, die anders aussieht?

                    1. ich werde es beherzigen.

                      das freut mich ;)

                      zur liste nochmal: was spricht gegen eine liste mit eigener klasse, die anders aussieht?

                      Hallo,

                      ich soll die css datei nicht verändern, dass ist der einzige grund.

                      Vielen Dank
                      Andy

  2. do {
      $ausgabekopf =  $row_qcount['anzahl'].'DS'.$row_qcount['code'].'<br>';
      $ausgabekopf_1 = substr($ausgabekopf, 0, strlen($ausgabekopf) - 4);
      echo $ausgabekopf_1;
    } while ($row_qcount = mysql_fetch_assoc($qcount));

    Was soll denn die Zeile mit dem $ausgabekopf_1? In der Zeile davon hängst du <br> an, anschließend klemmst du es gleich wieder ab?

    ich möchte da letze <br> nicht haben, was mache ich falsch?

    Du hast vergessen, den Zustand "letzte Zeile" zu prüfen.

    do {
      echo $row_qcount['anzahl'] . 'DS' . $row_qcount['code'];
      if ($row_qcount = mysql_fetch_assoc($qcount)) {
         echo "<br>";
      }
    } while ($row_qcount);