xgool: keine ausgabe?

Hallo, es geht um folgenden code ausschnit:

$counttotal=0; $countunread=0; $countnew=0;
$result = mysql_query("SELECT view, sendtime FROM privatemessage WHERE recipientid = '$userid' AND deletepm <> 1");
while($row= mysql_fetch_array($result))
{
 $counttotal++;
 if($row['view']==0)
 {
  $countunread++;
  if($row['sendtime']>$userdata['lastvisit']) $countnew++;
 }
}
    print_r ($row['sendtime']);
    echo "<br>Privat Massage: $countnew neue<br>";

in der vorletzten zeile ( print_r ($row['sendtime']); ) erfolgt keine ausgabe, kann mir jemmand vielleicht sagen warum?

  1. hi,

    while($row= mysql_fetch_array($result))

    wann wird diese schleife abgebrochen?

    print_r ($row['sendtime']);

    in der vorletzten zeile ( print_r ($row['sendtime']); ) erfolgt keine ausgabe, kann mir jemmand vielleicht sagen warum?

    das fällt dir auch auf, sobald die du abere frage korrekt beantwortet hast.

    gruß,
    wahsaga

    --
    I'll try being nicer if you'll try being smarter.
    1. wann wird diese schleife abgebrochen?

      sobald er nix entsprechendes mehr in der db findet, funzt auch, z.b. echo ausgabe gibt koregtes an.

      das fällt dir auch auf, sobald die du abere frage korrekt beantwortet hast.

      wie bitte? versteh den satz nicht?

      1. Hello,

        wann wird diese schleife abgebrochen?
        sobald er nix entsprechendes mehr in der db findet, funzt auch, z.b. echo ausgabe gibt koregtes an.

        das fällt dir auch auf, sobald die du abere frage korrekt beantwortet hast.

        wie bitte? versteh den satz nicht?

        Um es mal mit Deinen Worten auszudrücken:

        Sobald er nix ensprechendes mehr in der db findet, soll er das koregt angeben.
          Das funzt auch genau so.

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

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. ja und weis jemmand ne lösung? ich hab herrausgefunden wenn ich nur $row nach der schleife ausgebe bekomme ich keien antwort, nur vor der schleife geht es, woran kann das liegen?

          1. Hello,

            ja und weis jemmand ne lösung? ich hab herrausgefunden wenn ich nur $row nach der schleife ausgebe bekomme ich keien antwort, nur vor der schleife geht es, woran kann das liegen?

            Natürlich weiß hier jemand Rat, nur der ist gerade zum Grillen.
            Da müssen wir beide (und wahsaga) schon miteinander Vorlieb nehmen.

            Wenn es denn "vor der Schleife" noch klappt, dann solltest Du vielleicht einfach das gesuchte Argument aus der Schliefenbedingunge herausnehmen:

            gefunden = nein
              >>solange nicht gefunden
                hole Wert und merke ihn dir
                ist der Wert der gesuchte?
                  JA:  gefunden = ja
                  NEIN:mach einfach weiter
              <<Schleifenende

            zeige den letzten geholten Wert

            Wie das jetz in PHP heißt fällt mir nach dem siebten Bier im Moment nicht mehr ein.

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

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
          2. hi,

            ich hab herrausgefunden wenn ich nur $row nach der schleife ausgebe bekomme ich keien antwort, nur vor der schleife geht es, woran kann das liegen?

            an der abbruchbedingung der schleife, das sagte ich doch bereits ...

            while($row= mysql_fetch_array($result))

            wird wann abgebrochen?
            wenn mysql_fetch_array false zurückliefert, und somit der gesamte ausdruck false zurückliefert.
            zu diesem zeitpunkt ist $row aber jetzt auch schon false zugewiesen worden - du hast also nach der schleife in $row kein array mehr, das du mit print_r ausgeben könntest.

            eine lösung wäre

            while($row= mysql_fetch_array($result)) {
              $zwischenspeicher = $row;
              // sonstige aktionen innerhalb der schleife#
            }

            print_r($zwischenspeicher);

            gruß,
            wahsaga

            --
            I'll try being nicer if you'll try being smarter.
            1. Hello,

              eine lösung wäre

              $zwischenspeicher = array();

              while($row= mysql_fetch_array($result)) {
                $zwischenspeicher = $row;
                // sonstige aktionen innerhalb der schleife#
              }

              print_r($zwischenspeicher);

              Um es vollständig zu machen...
              Wenn man eine Variable später benutzen will, muss man sie auch anlegen und initialisieren, unabhängeig davon, ob PHP dagegen auch "Schmuddelkonzepte" anbietet.

              Wenn die Schleife nämlich beim ersten Mal schon nicht durchlaufen wird, wäre die Variable sonst nicht vorhanden.

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

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
              1. hi,

                Um es vollständig zu machen...
                Wenn man eine Variable später benutzen will, muss man sie auch anlegen und initialisieren, unabhängeig davon, ob PHP dagegen auch "Schmuddelkonzepte" anbietet.

                Wenn die Schleife nämlich beim ersten Mal schon nicht durchlaufen wird, wäre die Variable sonst nicht vorhanden.

                ja, danke für die ergänzung - sowas fällt bei solchen code-schnippseln schnell mal unter'n tisch.

                aber in der realität hätte uns unser PHP in diesem falle natürlich noch darauf hingewiesen, da wir ja unser error reporting auf "scharf" gestellt haben, um eben solche flüchtigkeiten nicht unbemerkt zu lassen ... gelle? ;-)

                gruß,
                wahsaga

                --
                I'll try being nicer if you'll try being smarter.
                1. Hello,

                  Wenn die Schleife nämlich beim ersten Mal schon nicht durchlaufen wird, wäre die Variable sonst nicht vorhanden.

                  ja, danke für die ergänzung - sowas fällt bei solchen code-schnippseln schnell mal unter'n tisch.

                  aber in der realität hätte uns unser PHP in diesem falle natürlich noch darauf hingewiesen, da wir ja unser error reporting auf "scharf" gestellt haben, um eben solche flüchtigkeiten nicht unbemerkt zu lassen ... gelle? ;-)

                  Ja wir! Aber hätte denn ein unbedarfter Leser auch gewusst, dass er mindestens mal die ini-Werte für die Fehlerbehandling _anschauen_ muss, bevor er anfängt zu testen?

                  Wir sollten hier eine eigene kleine FAQ für jede Kategorie einrichten. Die sollte auch nicht mehr als ca. 10-30 wichtige Punkte für daas Posten in der jeweiligen Kat enthalten. Dafür könnte man (armer CK) bestimmt ein Modul basteln, das jeweils ein kleines Team "ermächtigt", die erstmal verdeckt zu sammeln und dann nach und nach freizuschalten.

                  Registrierte User können dann nach n-maliger Durchsicht den Post ohne Einsichtnahme absenden, nicht registrierte User bekommen diese kurze Checkliste immer vorgelegt.

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

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau
                  1. hi,

                    aber in der realität hätte uns unser PHP in diesem falle natürlich noch darauf hingewiesen, da wir ja unser error reporting auf "scharf" gestellt haben, um eben solche flüchtigkeiten nicht unbemerkt zu lassen ... gelle? ;-)

                    Ja wir! Aber hätte denn ein unbedarfter Leser auch gewusst, dass er mindestens mal die ini-Werte für die Fehlerbehandling _anschauen_ muss, bevor er anfängt zu testen?

                    das ist noch nicht mal _so_ sehr der punkt.

                    aber wie oft erlebt man es, dass programmieranfänger ihr error reporting extra knebeln - damit nicht "immer diese dummen meldungen kommen" ...

                    gruß,
                    wahsaga

                    --
                    I'll try being nicer if you'll try being smarter.
                    1. Hello,

                      aber in der realität hätte uns unser PHP in diesem falle natürlich noch darauf hingewiesen, da wir ja unser error reporting auf "scharf" gestellt haben, um eben solche flüchtigkeiten nicht unbemerkt zu lassen ... gelle? ;-)

                      Ja wir! Aber hätte denn ein unbedarfter Leser auch gewusst, dass er mindestens mal die ini-Werte für die Fehlerbehandling _anschauen_ muss, bevor er anfängt zu testen?

                      das ist noch nicht mal _so_ sehr der punkt.

                      aber wie oft erlebt man es, dass programmieranfänger ihr error reporting extra knebeln - damit nicht "immer diese dummen meldungen kommen" ...

                      Genau deshalb finde ich, dass pro Kategorie eine extra Liste mit den UNAQ erscheinen sollte, bevor man posten kann. Die Leute von PHP haben das bei ihrem Bug-Reporting so ähnlich gemacht. Diese Liste mit den leidigen vergessenen Kontrollen könnte sich dynamisch aus den akzeptierten Vorschlägen der Stammposter und einer Art Bewertungssystem ergeben. Die eingetragenen Stammposter könnten anstelle der ewigen Nörgelmails zu den Statements einfach zu einem Poasting aus der Liste der häufigsten Fehler welche auswählen und damit diese in der Bewertungsliste nach oben bringen. Außerdem könnte der OP dann auch gleich die related Fehler einsehen und man müsste nicht immer alles neu schreiben.

                      Statt "Farbspielereien" würde dann so nach und nach ein potentes Entwicklungs- und QM-system entstehen.

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

                      Tom

                      --
                      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                      Nur selber lernen macht schlau
                      1. Moin!

                        Statt "Farbspielereien" würde dann so nach und nach ein potentes Entwicklungs- und QM-system entstehen.

                        Sowas ist im Forum absolut fehlangesiedelt IMO. Wer ein Posting absetzen will und dazu den Text schon in die Area getippt hat, der wird sich durch dumme Listen mit nichtzutreffenden Lösungen nicht aufhalten lassen, ein Posting abzusetzen.

                        Es liest ja auch niemand die FAQ hinsichtlich häufig gestellter Fachfragen, oder die SELFHTML-FAQ. Sonst gäbe es kein einziges Zwei-Frames-Posting hier.

                        Es durchsucht ja auch niemand das Archiv, obgleich mit gut gewählten Suchworten viele Lösungsansätze direkt erreichbar wären.

                        - Sven Rautenberg