Martin16: printf Fehlermeldung

hey,

ich hab ein Problem mit meiner Webseite. Eigentlich lief sie immer gut, aber jetzt kommt eine Fehlermeldung:
Warning: printf() [function.printf]: Too few arguments in *************index.php on line 110

Der betreffende Bereich ist:
``
$sql1="SELECT * FROM tagebuch ORDER BY id DESC LIMIT 0,5";
                $result=mysql_query($sql1);
                $zeilen=mysql_num_rows($result);
                 echo "<p> Anzahl der Eintr&auml;ge: $zeilen</p>\n";

while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
                 $zeit = @date("d.m.Y, H:i" ,$row[3]);
                 echo" <br /><div id='blog'><h3>$row[2]</h3>
                    <small>$row[1] , $zeit Uhr <br /></small><br />
                    <p>" . nl2br($row[4]) . "</p></div><br />
                    <a href='komm.php?kommid=$row[0]'>
$row[5] Kommentare</a><br /><br />

<br /><br />";
                    }
[/code]

Ich hab auch schon gegoogelt, hab nichts gefunden, vor allem ich verwende ja echo und nicht printf. Ware schoen, wenn ich eine Antwort bekommen wuerde :)

Martin16

  1. Hi,

    Warning: printf() [function.printf]: Too few arguments in *************index.php on line 110

    wo in Deinem Code ist Zeile 110?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Warning: printf() [function.printf]: Too few arguments in *************index.php on line 110

      wo in Deinem Code ist Zeile 110?

      Cheatah

      das ist der code, denn ich unten mitgegeben hatte:

      $sql1="SELECT * FROM tagebuch ORDER BY id DESC LIMIT 0,5";
                      $result=mysql_query($sql1);
                      $zeilen=mysql_num_rows($result);
                       echo "<p> Anzahl der Eintr&auml;ge: $zeilen</p>\n";
                       while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {                    //while-Anfang
                       $zeit = @date("d.m.Y, H:i" ,$row[3]);
                       echo" <br /><div id='blog'><h3>$row[2]</h3>
                          <small>$row[1] , $zeit Uhr <br /></small><br />
                          <p>" . nl2br($row[4]) . "</p></div><br />
                          <a href='komm.php?kommid=$row[0]'>$row[5] Kommentare</a><br /><br />

      hier ist zeile 110                   <br /><br />";
                          }

      aber da steht nur zeile 110 weil dort eben das echo aufhoert.

      1. echo $begrüßung;

        das ist der code, denn ich unten mitgegeben hatte:

        Deinem Code fehlt (neben einer Fehlerbehandlung) eine optische Strukturierung. Das gepostete Stück ist zumindest syntaxfehlerfrei. Der Grund für die Fehlermeldung ist nicht zu erkennen. Du bist sicher, dass du den richtigen Code anschaust? Nicht dass du in deine lokale Kopie schaust und auf dem Server seit dem Zeitpunkt des Auftretens ein veränderter Code liegt?

        echo "$verabschiedung $name";

        1. echo $begrüßung;

          das ist der code, denn ich unten mitgegeben hatte:

          Deinem Code fehlt (neben einer Fehlerbehandlung) eine optische Strukturierung. Das gepostete Stück ist zumindest syntaxfehlerfrei. Der Grund für die Fehlermeldung ist nicht zu erkennen. Du bist sicher, dass du den richtigen Code anschaust? Nicht dass du in deine lokale Kopie schaust und auf dem Server seit dem Zeitpunkt des Auftretens ein veränderter Code liegt?

          echo "$verabschiedung $name";

          es ist ganz sicher dieser Code, 100%. ok optisch struktieren war schon immer mein Problem, aber was meinst du mit Fehlerbehandlung? Hab mich da noch nciht durchgekaempft was wahrscheinlich ein Fehler ist.

          martin16

          1. ok, das ganze ist geklaert und kann geschlossen werden. In meinem Blogtext war ein %-Zeichen, was php als Platzhalter angesehen hat. Dadurch hatte die printf/echo Funktion zu wenige Parameter....

            1. Guten Morgen,

              ok, das ganze ist geklaert und kann geschlossen werden. In meinem Blogtext war ein %-Zeichen, was php als Platzhalter angesehen hat. Dadurch hatte die printf/echo Funktion zu wenige Parameter....

              kannst Du das noch mal etwas genauer beschreiben?

              Das wäre ja eine fürchterliche Lücke in PHP, wenn ein %-Zeichen aus dem Datenstrom in printf() noch Probleme machen sollte. Oder hast Du das Ersetzungsmuster erst während der Laufzeit zusammengestellt?

              Gesundheit!
              Dr. Bit

              1. echo $begrüßung;

                ok, das ganze ist geklaert und kann geschlossen werden. In meinem Blogtext war ein %-Zeichen, was php als Platzhalter angesehen hat. Dadurch hatte die printf/echo Funktion zu wenige Parameter....
                kannst Du das noch mal etwas genauer beschreiben?

                Das würde mich jetzt auch interessieren. printf() und echo haben wenig gemeinsam. Alle Parameter, die man einem echo mitgibt, werden ausgegeben, eine Platzhalterauswertung findet nicht statt. echo 'foo%squx', 'bar'; ergibt in der Ausgabe foo%squxbar. Bei printf('foo%squx', 'bar'); hingegen erhält man foobarqux.

                Das wäre ja eine fürchterliche Lücke in PHP, wenn ein %-Zeichen aus dem Datenstrom in printf() noch Probleme machen sollte.

                Für printf() ist das Behandeln von % plus nachfolgenden Zeichen ein ganz normaler Vorgang. Ein dokumentiertes Verhalten nicht zu beachten ist ein Problem des Anwenders und keine Lücke im System.

                echo "$verabschiedung $name";

                1. Hi,

                  Das würde mich jetzt auch interessieren. printf() und echo haben wenig gemeinsam.

                  Und vor allem sprach die Fehlermeldung explizit von printf, obwohl das im gezeigten Code gar nicht vorkam ...

                  Meine Vermutung, Frager hat hier mal wieder selber keinen Ueberblick ueber seinen Code.

                  MfG ChrisB

                  --
                  „This is the author's opinion, not necessarily that of Starbucks.“