variablen zusammenfügen in funktion

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

  • variablen zusammenfügen in funktion

    Hi Leute
    ich versuchte in einer function mehrere variablen aneinander zu fügen.

    Die funktion funzt wunderbar solange die integrierte for schleife nur einmal durchgeführt wird.
    Sobald sie ein zweites mal durchgeführt wird, und mehrere variablen aneinandergehängt werden, giebt sie nur noch warme luft zurück.



    PHP-Code:
    function gettree($level$date){
        global 
    $threadid$db_zugriff$n$levelarray$db_zugriff$trans_gif$i_gif$t_gif$hidelevel
        for(
    $i 1$i==$level$i++){
            if (
    $i == $level){
                
    $zwi=$db_zugriff->query_first("SELECT * from bb".$n."_posts where topostid='$levelarray[$i]' AND posttime>'$date'");
                if (
    $zwi[posttime]){
                    
    $ergebniss .= $trans_gif;
                    
    $hidelevel[$i] = "close";
                }else{
                    
    $ergebniss .= $t_gif;
                }
            }else{
                if(
    $hidelevel[$i] == "close"){
                    
    $ergebniss .= $trans_gif;
                }else{
                    
    $ergebniss .= $i_gif;
                }
            }
        }
        return 
    $ergebniss;

    ist es nen in einer funktion nicht möglich variablen mit .= zu verknüpfen ?
    Nicht Tatsachen,
    sondern Meinungen über Tatsachen
    bestimmen das Handeln der Menschen.
    (Epiktet (50-138 n.Chr.)

  • #2
    Warum sollte .= nicht möglich sein?

    Genau habe ich mir das Skript nicht angesehen, aber sollte anstatt
    for($i = 1; $i==$level; $i++){
    nicht
    for($i = 0; $i < $level; $i++){
    stehen?

    Kommentar


    • #3
      habs ausprobiert...
      hilft nichts...
      im nun werden die images nichtmal aneinandergereit wenn die funktion nur einmal durchläuft.

      fieleicht liegts an den werten den die variablen haben!
      $t_gif="<img src=\"images/t.gif\" width=\"12\" height=\"21\" border=\"0\">";
      $l_gif="<img src=\"images/l.gif\" width=\"12\" height=\"21\" border=\"0\">";
      $p_gif="<img src=\"images/p.gif\" width=\"9\" height=\"21\" border=\"0\">";
      $m_gif="<img src=\"images/m.gif\" width=\"9\" height=\"21\" border=\"0\">";
      usw.etc.
      Nicht Tatsachen,
      sondern Meinungen über Tatsachen
      bestimmen das Handeln der Menschen.
      (Epiktet (50-138 n.Chr.)

      Kommentar


      • #4
        for($i = 1; $i==$level; $i++)???
        mach mal so:
        for($i = 1; $i<=$level; $i++){
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Was soll denn die Schleife bewirken?
          for($i = 1; $i==$level; $i++){
          Wir4d meines Erachtens nur einmal prozessiert, also nur wenn
          $level den Inhalt 1 hat. Beim nächsten Durchlauf $i=2 wird die Schleife beendet.

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

          Kommentar


          • #6
            ist auch ne möglichkeit ...

            Aber das problem liegt vermutlich nicht an der forschleiffe!
            Das problem liegt daran, wenn die for- schleiffe mehrmals durchgeführt wird, kriege ich kein ergebniss zurück.
            hingegen wenn sie nur 1x durchläufft ($level = 1) kriege ich das korrekte ergebniss zurück.
            Nicht Tatsachen,
            sondern Meinungen über Tatsachen
            bestimmen das Handeln der Menschen.
            (Epiktet (50-138 n.Chr.)

            Kommentar


            • #7
              Original geschrieben von hand
              Was soll denn die Schleife bewirken?
              for($i = 1; $i==$level; $i++){
              Wir4d meines Erachtens nur einmal prozessiert, also nur wenn
              $level den Inhalt 1 hat. Beim nächsten Durchlauf $i=2 wird die Schleife beendet.

              http://www.php.net/manual/de/control-structures.for.php
              Dan würde ja di schleife wenn $level 1 ist, überhaubt nicht ausgeführt.
              sie tut es.

              auch wenn sie falsch ist. sollte sie wenn $level mer als 1 ist (zb. 2)mindestens 1x durchgeführt werden. und dies gäbe bereits ein ergebniss.
              welches ich jedoch sobald die schleiffe mermals durchläuft nicht mehr erhalte.
              Zuletzt geändert von joschua; 24.03.2002, 12:02.
              Nicht Tatsachen,
              sondern Meinungen über Tatsachen
              bestimmen das Handeln der Menschen.
              (Epiktet (50-138 n.Chr.)

              Kommentar


              • #8
                Das sag ich ja die ganze Zeit!

                Deine Schleife wird nur durchlaufen, wenn $level 1 ist! Sonst nie.
                Hat $level einen anderen Wert 2 zum Beispiel, wird die Schleife nie durchlaufen, da die Bedingung $i==$level, also 1 == 2 sofort false generiert und die Schleife beendet.

                for($i = 1; $i<=$level; $i++){
                oder
                for($i = 0; $i<=$level; $i++){

                Du greifst ja auf ein Array ($hidelevel[$i]) zu, welches Nullrelativ ist.

                Kommentar


                • #9
                  Jaaaaaaaaaaaaaaauuuuuuuuuuuuuuuuuuuuuuuuuu


                  das $i =0 hat mir nicht gefallen weil es kein $level0 giebt...

                  mit for($i = 1; $i<=$level; $i++){ klappts



                  THAAAANX
                  Nicht Tatsachen,
                  sondern Meinungen über Tatsachen
                  bestimmen das Handeln der Menschen.
                  (Epiktet (50-138 n.Chr.)

                  Kommentar

                  Lädt...
                  X