Didi: Fehler in PHP...WARUM ???

Hallo,

ich verstehe es einfach nicht! Ich nutze folgenden Code:

  
<?  
include "../config.inc.php";  
$cont_A = "<table border='0' cellpadding='0' cellspacing='0' width='500'><tr><td width='150'>";  
$cont_B = "</td><td width='150'>";  
$cont_C = "</td><td width='50'><p align=right>";  
$cont_D = "</td></tr></table>";  
$tinow = time();  
$tiout = $tinow - (60*60*24*30);  
$logstats_er = mysql_query ("SELECT * FROM 'logstats' WHERE 'logtime' > '".$tiout."' AND 'logstatus' = '0'");  
$logsum_er = mysql_num_rows($logstats_er);  
$logstats_ok = mysql_query ("SELECT * FROM 'logstats' WHERE 'logtime' > '".$tiout."' AND 'logstatus' = '1'");  
$logsum_ok = mysql_num_rows($logstats_ok);  
$loglist = mysql_query ("SELECT 'logtime', 'logip', 'loghost', 'logstatus' FROM 'logstats' WHERE 'logtime' > '".$tiout."');  
while ($fields = mysql_fetch_row($loglist)) {  
$zco=0;  
 for ($i=0, $max=sizeof($fields); $i < $max; $i++) {  
 $zco++;  
 if ($zco==1) { $logti =   $fields[$i]; }  
 if ($zco==2) { $logip =   $fields[$i]; }  
 if ($zco==3) { $loghost = $fields[$i]; }  
 if ($zco==4) { $logstatus = $fields[$i]; $lognow = $logti; $listcont = $listcont.=$cont_A.=$lognow.=$cont_B.=$logip.=$cont_B.=$loghost.=$cont_C.=$logstatus.=$cont_D; $zco=0; }  
  }  
}  
?>  

und erhalte immer ein "Parse error: syntax error, unexpected $end in C:\Programme\xampp\htdocs\picload\admin\logtrack.php on line 24"...

Warum dieses ?
Ich habe mittlerweile alles durch, mit und ohne escapen, andere Schreibweisen - nix funzt!
In der Config stelle ich einen DB-Connect her.
Sieht jemand einen Fehler ??

Gruss
der verzweifelte Didi

  1. echo $begrüßung;

    Ich habe mittlerweile alles durch, mit und ohne escapen, andere Schreibweisen - nix funzt!

    Verwende einen Editor mit Syntax-Highlightung für PHP.

    Sieht jemand einen Fehler ??

    Kurz vor while ist er.

    echo "$verabschiedung $name";

    1. Hallo und danke !

      Man bin ich dämlich !
      Sollte wirklich auf einen Editor mit vernünftiger Darstellung setzten und nicht auf den ollen MS Editor...

      Gruss
      Didi

      1. Hallo Didi.

        Sollte wirklich auf einen Editor mit vernünftiger Darstellung setzten und nicht auf den ollen MS Editor...

        Kann ich nur empfehlen.

        Einen schönen Mittwoch noch.

        Gruß, Ashura

        --
        sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
        mathbr:del.icio.us/ mathbr:w00t/
  2. Moin,

    $loglist = mysql_query ("SELECT 'logtime', 'logip', 'loghost', 'logstatus' FROM 'logstats' WHERE 'logtime' > '".$tiout."');

    hier ist dein Fehler.
    Du fängst dein Query mit einem " an, willst es aber mit einem ' beenden. Das haut nicht hin. PHP denkt also, dass alles was danach noch kommt zu deinem Query-String gehört und deswegen fehlt das Ende.
    Du musst deinen Query-String einfach nur vernünftig abschliessen.

    Sowas sollte allerdings bei einem Editor mit Syntax-Highlighting schnell auffallen.

    MfG,
      Juan

    1. Hello,

      Sowas sollte allerdings bei einem Editor mit Syntax-Highlighting schnell auffallen.

      vielleicht liegt es auch an dieser "all in one"-Schreibweise?
      Die ist ohnehin sehr fehlerträchtig.

      Eine (Leer-)Zeile mehr, etwas ausfühlichere Klammerung, ein Kommentar extra, Select-Statements vorher separat zuweisen, das wirkt manchmal Wunder.

      Harzliche Grüße vom Berg
      http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau

  3. moin!

    for ($i=0, $max=sizeof($fields); $i < $max; $i++) {

    die zeile sticht mir als erstes ins auge. ich wüsste nicht, dass man im ersten ausdruck irgend ein komma setzen könnte...

    gruß.
    roger.

    --
    meine freundin sagt, ich wäre neugierig.
    so steht's zumindest in ihrem tagebuch.
    1. hi,

      for ($i=0, $max=sizeof($fields); $i < $max; $i++) {

      die zeile sticht mir als erstes ins auge. ich wüsste nicht, dass man im ersten ausdruck irgend ein komma setzen könnte...

      Doch, kann man.

      Vor dem Einsteig in die Schleife wird hier $i auf 0 und $max auf sizeof(...) gesetzt - damit muss man die Obergrenze nicht immer wieder in der Bedingung neu ermitteln.

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. moin!

        Vor dem Einsteig in die Schleife wird hier $i auf 0 und $max auf sizeof(...) gesetzt - damit muss man die Obergrenze nicht immer wieder in der Bedingung neu ermitteln.

        danke. man lernt halt nicht aus. ich hab mir nebenbei nochmal die referenz angesehen, konnte aber hier nix genaues dazu finden...

        gruß.
        roger.

        --
        meine freundin sagt, ich wäre neugierig.
        so steht's zumindest in ihrem tagebuch.
        1. echo $begrüßung;

          ich hab mir nebenbei nochmal die referenz angesehen, konnte aber hier nix genaues dazu finden...

          Es gibt einige Benutzerkommentare zu dem Thema.

          echo "$verabschiedung $name";

          1. moin!

            Es gibt einige Benutzerkommentare zu dem Thema.

            ja, hatte ich gesehen. die sind aber nicht wirklich erklärend. und bei einer referenz erwartet man doch schließlich auch, dass eben alles genannt wird, welche parameter bei einem befehl/funktion eingesetzt werden können. nicht?

            gruß.
            roger.

            --
            meine freundin sagt, ich wäre neugierig.
            so steht's zumindest in ihrem tagebuch.
            1. hi,

              und bei einer referenz erwartet man doch schließlich auch, dass eben alles genannt wird, welche parameter bei einem befehl/funktion eingesetzt werden können. nicht?

              Und? Da steht doch eindeutig, dass die einzelnen "Parameter" für for "expressions", also Ausdrücke, sein sollen.

              gruß,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
              1. moin!

                gereizt?
                "for (ausdr1; ausdr2; ausdr3) Anweisung"
                das steht da. wie so ein ausdruck auszusehen hat, wird aber nirgends beschrieben. nur eben mit den standardformen ($i=0 oder eben leer lassen).

                gruß.
                roger.

                --
                meine freundin sagt, ich wäre neugierig.
                so steht's zumindest in ihrem tagebuch.
                1. Hi,

                  das steht da. wie so ein ausdruck auszusehen hat, wird aber nirgends beschrieben. nur eben mit den standardformen ($i=0 oder eben leer lassen).

                  Zitaz: Sie funktionieren wie ihr Gegenstück in C.

                  Wenn es dich interessiert, wieso liest du dann nicht die entsprechende Manpage? Da steht genau drin was du wissen willst. Wieso soll denn alles nochmnal da stehn, wenn es an aderer Stelle bereit niedergeschrieben ist? Ich denke, die Aussage, wo eine Info zu finden ist, ist völlig ausreichend.

                  1. echo $begrüßung;

                    Ich denke, die Aussage, wo eine Info zu finden ist, ist völlig ausreichend.

                    Ja, sicher. Das "Problem" hier ist nur, dass weder im Fließtext zu for, noch unter Expressions und auch nicht unter Operators ein Hinweis dazu zu finden ist. Auf letzter Seite ist er zwar enthalten aber nur mit "many uses" beschrieben. (User-Kommentare zählen nicht, da das Handbuch auch ohne diese erhältlich ist und verständlich sein sollte.)

                    Wie also soll man zu oben erwähnter Aussage kommen, wenn man nicht zufällig drüber stolpert?

                    echo "$verabschiedung $name";

                    1. moin!

                      Wie also soll man zu oben erwähnter Aussage kommen, wenn man nicht zufällig drüber stolpert?

                      danke. ich dachte schon, ich bin allein mit meiner meinung.

                      gruß.
                      roger.

                      --
                      meine freundin sagt, ich wäre neugierig.
                      so steht's zumindest in ihrem tagebuch.
                    2. Hi,

                      Wie also soll man zu oben erwähnter Aussage kommen, wenn man nicht zufällig drüber stolpert?

                      Naja, diese Aussage steht in der ersten Zeile ;)

                      Ok, vielleicht tu ich mich leichter, weil ich seit jahren in C Programmiere und auch weiss, wo ich nachschaun muss. Asu dem Grund hab ich auch keine Ahnung, wo man im Internet die Doku zu C findet, da ich die Manpages auf der Platte hab ;) Und ich muss zu meiner Schande gestehen, das ich im Netz jetzt auf die Schnelle nix finde, das dieses Kontrukt komplett erklärt.

                      1. echo $begrüßung;

                        Wie also soll man zu oben erwähnter Aussage kommen, wenn man nicht zufällig drüber stolpert?

                        Naja, diese Aussage steht in der ersten Zeile ;)

                        Meinst du: "They behave like their C counterparts." und wenn ja, dass man zwischen dieser Aussage und den Kommas einen Zusammenhang herstellt? Sehr, sehr unwahrscheinlich, würde ich meinen.

                        echo "$verabschiedung $name";

                        1. Hi,

                          Meinst du: "They behave like their C counterparts." und wenn ja, dass man zwischen dieser Aussage und den Kommas einen Zusammenhang herstellt? Sehr, sehr unwahrscheinlich, würde ich meinen.

                          Nein, ich meine den Satz "Sie funktionieren wie ihr Gegenstück in C" (wie bereits genauso zitiert) in der ersten Zeile auf der Seite zu for()

                          http://de2.php.net/manual/de/control-structures.for.php

                          1. moin!

                            Meinst du: "They behave like their C counterparts."

                            Nein, ich meine den Satz "Sie funktionieren wie ihr Gegenstück in C"

                            ähm..., englisch vielleicht?

                            gruß.
                            roger.

                            --
                            meine freundin sagt, ich wäre neugierig.
                            so steht's zumindest in ihrem tagebuch.
                            1. ähm..., englisch vielleicht?

                              Mir ist klar, das es der gleiche Satz in Englisch ist, aber trotzdem hab ich nicht diesen Zitiert, sondern den in deutsch. Mag erbsenzählerisch erscheinen, aber wenn ich deutsch zitiere, sag ich nicht hinterher, das es der englische Satz war ;)

                        2. Nachtrag:
                          und da in C die "Sache" mit dem Komma funktioniert, ist es logisch, das es auch unter PHP funktioniert, wenn es so dasteht. Somit ist der Zusammenhang hergestellt.

                    3. Hi,

                      und auch nicht unter Operators ein Hinweis dazu zu finden ist.

                      Nicht ganz - letzte Zeile der Tabelle mit den Precedences: der , Operator.

                      Daß da statt eines Links zur Beschreibung lediglich "Many uses" steht und noch nichtmal der Name des Operators (ich kenn ihn als "sequence operator"), ist allerdings schwach. Auch bei der Suche nach sequence oder sequential findet sich nichts brauchbares ...

                      cu,
                      Andreas

                      --
                      Warum nennt sich Andreas hier MudGuard?
                      Schreinerei Waechter
                      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                      1. echo $begrüßung;

                        und auch nicht unter Operators ein Hinweis dazu zu finden ist.

                        Nicht ganz - letzte Zeile der Tabelle mit den Precedences: der , Operator.

                        "Ich hätte gern einen Sack Sägespäne, 3 Nägel und ein Brett 100x200x5. Für Letzteres soll Eichenholz verwendet werden."

                        Nun die Frage: Welches Holz verwendest du für das Brett?
                        Zusatzfrage: Was passiert, wenn man den Zusammenhang zweier aufeinanderfolgender Sätze nicht beachtet?

                        :-)

                        echo "$verabschiedung $name";

                        1. Hi,

                          "Ich hätte gern einen Sack Sägespäne, 3 Nägel und ein Brett 100x200x5. Für Letzteres soll Eichenholz verwendet werden."

                          Zusatzfrage: Was passiert, wenn man den Zusammenhang zweier aufeinanderfolgender Sätze nicht beachtet?

                          Versucht man dann, die Nägel für die Sägespäne zu verwenden?

                          :-)

                          ;-)

                          Viele Grüße

                          Jörg

                          1. Hallo.

                            "Ich hätte gern einen Sack Sägespäne, 3 Nägel und ein Brett 100x200x5. Für Letzteres soll Eichenholz verwendet werden."

                            Zusatzfrage: Was passiert, wenn man den Zusammenhang zweier aufeinanderfolgender Sätze nicht beachtet?

                            Versucht man dann, die Nägel für die Sägespäne zu verwenden?

                            Klar, mit den Nägeln verbindet man die Sägespäne zu einem weiteren Brett -- für den Fall dass das Eichenholzbrett zu hart ist, um es zu Spänen zu zersägen.
                            MfG, at

                            1. Moin,

                              Versucht man dann, die Nägel für die Sägespäne zu verwenden?

                              Klar, mit den Nägeln verbindet man die Sägespäne zu einem weiteren Brett -- für den Fall dass das Eichenholzbrett zu hart ist, um es zu Spänen zu zersägen.

                              Ist das jetzt rekursiv? :-)

                              Viele Grüße

                              Jörg

                              1. Hallo.

                                Ist das jetzt rekursiv? :-)

                                :-)-:-(-:-)-:-(-:
                                MfG, at

                  2. moin!

                    Zitaz: Sie funktionieren wie ihr Gegenstück in C.

                    das setzt wohl voraus, dass ich "C" kenne. und als hobbyprogrammierer kenne ich höchstens das "hohe C". ;)

                    gruß.
                    roger.

                    --
                    meine freundin sagt, ich wäre neugierig.
                    so steht's zumindest in ihrem tagebuch.
    2. Moin Roger.

      for ($i=0, $max=sizeof($fields); $i < $max; $i++) {

      die zeile sticht mir als erstes ins auge. ich wüsste nicht, dass man im ersten ausdruck irgend ein komma setzen könnte...

      Kann man aber, wie in C auch.