float-int problem bei verarbeitung

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

  • float-int problem bei verarbeitung

    aaaalso hallo an alle

    ich hab ein Problem mit einer Slideshow oder viel mehr mit der Thumbnail übersicht
    Die übersicht besteht aus 4 seiten a 12 bilder($imgPage=12 siehe unten)
    da sollen auch pro übersicht seite auf jedenfall 12 bilder rein!
    jetzt hab ich das problem das ich 52 bilder habe und 52 durch 12 ergibt 4.333333333...
    und php arbeitet ja dann bekanntlich nur mit der 4 das heisst er generiert nur 4 unterseiten anstatt 5 (wenn ich von er rede ist meist der server gemeint)
    da es mehrere Bilderrubriken gibt die alle über das selbe allgemeine script laufen (alles auf datenbankcategorys aufgebaut) kann ich das ganze leider nicht fest definiern

    ahso ja der server läuft mit php4

    Hier ein Auszug:


    ... $imgPage = 12;

    $pageCount = count($_SESSION[$slide]) / $imgPage;

    // count($_Session..) ist der bezug zur datenbank wo sich das script die anzahl der Bilder hohlt (vorher schon definiert)

    if(!is_numeric($_GET["page"]) OR $_GET["page"] > $pageCount OR $_GET["page"] < 1)
    {
    $_GET["page"] = 1;
    }

    $page = $_GET["page"]- 1;

    for($i = 1; $i <= $pageCount; $i++)
    {
    $pageLinkArray[] = "[a='cat=".$_SESSION["category"]."~~page=".$i."']Seite ".$i."[/a]";
    }

    $pageLinkString = implode(" | ", $pageLinkArray)


    jetzt hab ich mir gedanklich ein paar logische lösungen überlegt
    die ich aber mangels kenntnissen nicht in php umsetzen kann
    hab schon versucht ne weitere variable zu definiern aus der differenz aus $pageCount und dem integer wert dieser var und sobald das grösser 0
    &pageCount++ oder +1 aber das funtzte irgendwie nicht..(geht das überhaupt (int) in bezug auf variablen? )
    muss ich vielleicht nochn rechenterm einfügen um diesen periodischen teil (.3333) herauszuheben?
    najo ich weiss net mehr weiter
    Vielen Dank an Alle im Voraus die sich die Mühe machen mir zu helfen!

    MfG

    ranzi
    Die Milch bleibt ranzig!

  • #2
    ganz einfach, du machst Ganzzahldivision und prüfst ob ein Rest existiert, wenn ja dann addiere eins zu der Seitenanzahl und die Anzahl der Bilder auf der Restseite ist eben dieser Rest von der Division. Wo liegt das Problem?

    Kommentar


    • #3
      Re: float-int problem bei verarbeitung

      Original geschrieben von RanzigeMilch
      jetzt hab ich das problem das ich 52 bilder habe und 52 durch 12 ergibt 4.333333333...
      und php arbeitet ja dann bekanntlich nur mit der 4
      hä? was soll denn das bedeuten?

      wer hindert dich denn, an der stelle wo diese division stattfindet, einfach auf die nächsthöhere ganzzahl aufzurunden?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        omg schön das weiss ich auch das des im rl und ner mathearbeit ohne probs geht
        me aber php rooky grünling schwierigkeitsstufe: dont hurt me

        wär daher nice wenn du mir das anhand eines beispiels oder gleich anhand von meinem auszug dort verdeutlichen könntest
        syntax mein ich
        dange für die schnelle rückmeldung

        MfG
        ranzi
        Die Milch bleibt ranzig!

        Kommentar


        • #5
          floor
          ceil
          round

          OffTopic:
          wir haben vorhin gut über deinen namen gelacht
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            jo dangedange
            das hat geklappt
            nur nu habsch neues problem
            und zwar:
            der hat nu endlich den link zur 5. seite generiert aber wenn man die anklickt
            kommt nur das :SELECT `file`,`description`,`category` FROM `allFiles` WHERE `allFilesId` =
            anstatt der übersicht

            jetzt glaub ich das es daran liegt:

            ...$page = $_GET["page"]- 1;...


            for($i = 0; $i < $rows; $i++)
            {
            unset($slideDataArray);

            for($j = 0; $j < $cols; $j++)
            {
            $z = $imgCounter + $page * $imgPage;

            $slideDataArray[] = "[c][thumb='".$_SESSION[$slide][$z]."'][/c]";

            $imgCounter++;
            }

            $slideData[$i] = "[tr]".implode("[td]",$slideDataArray)."[/tr]";
            }

            $this->data = "[c]".$pageLinkString."[/c]\n".implode("\n", $slideData)."[p][c]".$pageLinkString."[/c]";
            }


            und zwar die zeile $z = $imgCounter + $page *$imgPage
            wenn man das ausrechnet kommt man in dem fall nämlich auf 60 und net 52 und admit kommt dann möglicher weise die datenbank net klar
            aber das is nur ne these

            mfG

            ranzi
            Die Milch bleibt ranzig!

            Kommentar


            • #7
              Wie sieht denn die komplette SQL-Abfrage aus?

              Kommentar


              • #8
                hum jetzt nur von der slideshow oder vom ganzen script?

                ahjo gibbet ne möglichkeit bei $imgPage=12;
                das er da irgendwie mit angibt wenn weniga als 12 da dann halt weniger?
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  so nu bin ich wieda auffa arbeit =D weider gehts
                  Die Milch bleibt ranzig!

                  Kommentar


                  • #10
                    also ich hab grad probeweise noch 8 weitere bilder eingefügt damit ich auf 60 komme und siehe da es funzt

                    gibt es nu ne funktion bei der ich irgendwie sagen kann
                    das wenn es weniger als 12 bilder für die letzte seite er halt auch mit weniger bildern klar kommt?

                    MfG

                    ranzi
                    Die Milch bleibt ranzig!

                    Kommentar


                    • #11
                      ich verstehe dein problem nicht bzw. kann es nicht erkennen.

                      wenn es auf der letzten seite weniger als zwölf bilder sind, stell eben weniger als 12 bilder dar.
                      OffTopic:
                      vielleicht solltest du (zumindest hier im forum) versuchen, deutsch zu schreiben. solche kinderkacke mag ich persönlich nämlich nicht.
                      Die Zeit hat ihre Kinder längst gefressen

                      Kommentar


                      • #12
                        Original geschrieben von derHund

                        OffTopic:
                        vielleicht solltest du (zumindest hier im forum) versuchen, deutsch zu schreiben. solche kinderkacke mag ich persönlich nämlich nicht.
                        OffTopic:

                        FULLACK, ... das ist auch der Grund, warum ich nichts dazu poste

                        Kommentar


                        • #13
                          ... weder kinderkacke noch sonstwas
                          << jahrelanger esportler daher komischer forumslang..

                          also dieses script ist für mehrere seiten
                          d.h
                          2 seiten haben 48 bilder da kommts genau hin
                          aber daher kann ich $imgPage nicht geringer als 12 stelln

                          ich brauche also irgendwas damit wenn er erkennt das auf der letzten seite weniger als 12 bilder sind er nicht zwanghaft versucht trotzdem 12 bilder aus der datenbank zu holen, was momentan noch passiert.

                          hatte da ne überlegung

                          $imgC eingeführt ( = count($_SESSION[$slide])

                          und dann

                          for($imgC < $imgPage*$pageCount) // in diesem fall wenn kleiner als 60 //

                          { und hier weiss ich nicht mehr weiter ich will $imgPage dazu bringen das es 12 bleibt aber sobald $imgC kleiner als 60 soll $imgPage die differenz von $imgPage*$pageCount - $imgC betragen

                          kann ich das einfach so schreiben? mit if eingeschachtelt in for??

                          MfG

                          ranzi
                          Die Milch bleibt ranzig!

                          Kommentar


                          • #14
                            du hast bei jedem Request:
                            - die Gesamtanzahl der Bilder
                            - die Anzahl der Bilder pro Seite
                            - die aktuelle Seite
                            wasfür Probleme hast du? mit diesen 3 Infos kannst du doch die Laufgrenze prüfen bzw. festlegen. Überlege mal scharf nach. Tipp: erstmal rein mathematisch, dann das Ergebnis programmiertechnisch umsetzen.

                            Kommentar


                            • #15
                              sry für mein unwissen aber was meinst du mit laufzeit??

                              also ich hab jetzt das hier eingefügt:

                              $imgc = count($_SESSION[$slide]);

                              if($imgc < $imgPage*$pageCount)
                              {
                              $imgPage = $imgPage*$pageCount - $imgc;


                              count(..) = anzahl der bilder von datenbank
                              $imgPage = zahl der bilder pro seite (12)
                              $pageCount= wieviele seiten erstellt werden in diesem fall 5

                              nur jetzt ist das witzige problem er hat auf allen 5 seiten 12 bilder
                              (obwohls nur 52 sind)
                              aber auch nur weil er bei der nächsten seite immer mit dem 6. bild der vorherigen seite beginnt...

                              EDIT: ich bin auch ein eumel ....
                              sry omg habs schwarz auf weiss vor mir liegen n rechnfehler .. grr
                              Zuletzt geändert von RanzigeMilch; 11.05.2005, 09:05.
                              Die Milch bleibt ranzig!

                              Kommentar

                              Lädt...
                              X