count()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • count()

    ich bekomme eine falsche ausgabe. in der db sind 2 ds. 1 ds läuft noch länger wie 24 stunden, einer weniger. das ergebnis sollte 1 sein. ist es auch. wenn ich die zeit von 86400 auf 864000 (also 10 tage) erhöhe, ist die ausgabe ebenfalls 1. warum ist das so?

    PHP-Code:
    $isnow mktime();

    // $run = startzeit der auktion 
    // $auk_zeit = dauer der auktion
    $query "SELECT COUNT(*) FROM auktion WHERE sid='$sid' AND '$run'+'$auk_zeit'-'86400' < '$isnow'";
    $result9 mysql_query($query);
    $ausgabe mysql_num_rows($result9);
    echo 
    $ausgabe// anzeige nur wenn auktion weniger als 24 std 

  • #2
    Bitte nochmal auf deutsch, ich versteh nich wie nen Datensatz (wenn du ds damit meinst) laufen kann?


    EDIT: Du ZÄHLST bereits in deinem SELECT. D.h., dein SELECT gibt bereits z.B. 2 zurück. Das ist dann in EINEM Datensatz. Und das WIEDERRUM zählst du. Und da es nur EINEN Datensatz gibt (nämlich den von COUNT) wird nur dieser eine gezählt -> das Ergebnis ist IMMER 1.


    2. EDIT: count() hat damit nix zu tun (jedenfalls nicht die PHP-Funktion count() ), von daher gehört das Thema hier eher nach SQL
    Zuletzt geändert von Shurakai; 27.03.2005, 13:54.
    Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
    var_dump(), print_r(), debug_backtrace und echo.
    Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
    Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
    Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

    Kommentar


    • #3
      Original geschrieben von Shurakai
      2. EDIT: count() hat damit nix zu tun (jedenfalls nicht die PHP-Funktion count() ), von daher gehört das Thema hier eher nach SQL
      sehe ich genauso ....

      *move*
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        Der COUNT() gibt in der mysql Abfrage die Zahl der Datensätze zurück, die den Kriterien entsprechen.
        D.h. du Bekommst immer 1 auf die mysql_num_rows zurück, da ja nur 1 Zahl vorhanden ist.
        Lass das COUNT weg und es müsste Korrekt sein.

        Kommentar


        • #5
          leider nein, die ausgabe ist immer 1. hab auch die berechnung nochmal geprüft. komme nicht weiter und weiß nicht warum. die where bedingung ist doch eindeutig!? oder übersehe ich hier was?

          Kommentar


          • #6
            PHP-Code:
            WHERE sid='$sid' AND '$run'+'$auk_zeit'-'86400' '$isnow' 
            Kuck dir das nach dem AND an... Was fällt dir auf? Wie heisst nochmal gleich die Spalte in der du suchst>?

            Kommentar


            • #7
              ausgabe

              guten morgen. ich habe das ganze umgestellt und die ausgabe etwas komfortabler gestaltet, damit ich sehe und evtl. verstehe was passiert.
              hier nochmal der code.
              PHP-Code:
              <?
              include("../connect/connect.php");
              $query = "SELECT * FROM auktion WHERE sid='$sid'"; 
              $result = mysql_query($query);
              while($row = mysql_fetch_object($result))
              {

              $isnow = mktime(); echo $isnow;
              echo "<br>";
              echo $row->run;
              echo "<br>";
              echo $row->auk_zeit;
              echo "<br>";
              $a = $row->run+$row->auk_zeit - $isnow; echo $a; echo " > 432000";
              echo "<br>";
              echo "---------------------------";
              echo "<br>";
              if   ($a > 432000) {echo count($a);}
              else {echo "0";}
              }
              echo "<br>";
              echo "<br>";
              ?>
              und nun die ausgabe:
              [1111985229
              1111769952
              432000
              216723 > 432000
              ---------------------------
              01111985229
              1111856256
              864000
              735027 > 432000
              ---------------------------
              1

              setzte ich jedoch statt der 432000 die 86400 ein, sollte das ergebnis 2 sein. es ist jedoch 1. ich kapiers nicht. woran liegt das?

              Kommentar


              • #8
                danke für die hilfe / hinweise / tips.
                habs!!!!! endlich

                Kommentar


                • #9
                  Poste doch auch deine Lösung. Immer an die Leute denken die mal die Suche benutzen und vllt. auf diesen Thread hier kommen....
                  Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
                  var_dump(), print_r(), debug_backtrace und echo.
                  Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
                  Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
                  Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

                  Kommentar

                  Lädt...
                  X