object via return aus funktion übergeben

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

  • object via return aus funktion übergeben

    Hallo,
    ich lade per fetch-object oder per fetch-arry daten aus der DB und weise die ergebnis-$row dann $team_val zu.
    Wenn ich $team_val per return zurückgebe sollte ich doch ausherhalb der Funktion darauf zugreifen können oder nicht?
    Aber die variable zählt nicht als nicht deklariert. Egal ob ich per array oder object darauf zugreife.

    PHP-Code:
    function team(){
     global 
    $page_sonderwert;
     global 
    $conn;

      
    $sql="SELECT * FROM team WHERE team_value='$page_sonderwert' AND team_status='1';";
      
    $result $conn->query($sql);
       while(
    $row $result->fetch_object()) {
       
    $team_val $row;
       }
    return 
    $team_val;
    }

    team(); 

  • #2
    Mach mal:

    PHP-Code:
    <?php
    $team_val 
    team();
    ?>
    Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

    Kommentar


    • #3
      Sorry aber das kann ich nicht nachvollziehen? Wieso dem Aufruf der Funktion einer Variablen aus der Funktion zuweisen?!

      Kommentar


      • #4
        Na, is doch wurscht, du kannst die variable auch "Suppentopf" nennen.

        Pass uf, durch das return wirft die Funktion etwas zurück. Allerdings nur den Wert, nicht die Variable als Solche. Du musst denn Wert dann wie oben beschrieben in eine neue Variable laden. Wie du die nennst ist egal.
        Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

        Kommentar


        • #5
          Ahhh jetzt gerafft.
          Vielen lieben Dank.

          Kommentar


          • #6
            Und wie schaff ich es das nicht nur ein Wert ausgegeben wird sondern alle rows auf die die Bedingungen zutreffen?

            wenn ich z.B. mit $team_val->team_name zugreife bekomm ich ja immer nur einen datensatz als ergebnis. Ich brauche aber alle die zutreffen? Durchgeschleift wurd das ganze doch schon. Und es sollten doch auch alle datensätze im object gespeichert werden odeR?
            Zuletzt geändert von analyzer; 05.03.2008, 20:27.

            Kommentar


            • #7
              Ne, da wird so wie oben nur einer gespeichert, und den überschreibst du immer wieder. Ist also nur der letzte drin.

              Ich mach das immer mit:

              PHP-Code:
              <?php

              while($row mysql_fetch_assoc($res)){
                
              $res[] = $res;
              }
              ?>
              Dann hast du alles in nem assoziativen Array.
              Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

              Kommentar


              • #8
                Original geschrieben von nohfreak
                Ne, da wird so wie oben nur einer gespeichert, und den überschreibst du immer wieder. Ist also nur der letzte drin.

                Ich mach das immer mit:

                PHP-Code:
                <?php

                while($row mysql_fetch_assoc($res)){
                  
                $res[] = $res;
                }
                ?>
                Dann hast du alles in nem assoziativen Array.
                üüh, böse!
                PHP-Code:
                $returnValue = array();
                while( 
                $row mysql_fetch_assoc$result ) )
                {
                  
                $returnValue[] = $row;
                }

                return 
                $returnValue
                Freedom is a state of mind. Not a state in which we live.

                troxdev.ch | animefieber

                Kommentar


                • #9
                  ohja, ups, da awr ein res wo ein row hingehörte bzw. generell blöde benamung bei mir. Hab das grad zwischen zwei DotA-Games getippselt. ^^

                  Nimm das ausm Post über meinem.
                  Zuletzt geändert von nohfreak; 05.03.2008, 21:04.
                  Mein aktuelles Projekt: Hausaufgaben Datenbank für kostenlose Hausaufgaben

                  Kommentar


                  • #10
                    Danke erstmal für die Antworten. Nur als Hinweis ich nutze mysqli.
                    Wenn ich euren Ansatz teste bekomm ich undefined index.
                    Das Array müsste doch jetzt in returnValue gespeichert werden und der Wert geht an die function. Kann aber nicht auf den index des arrays zugreifen.

                    PHP-Code:
                    function coach(){
                     
                    $sql="SELECT * FROM coach WHERE coach_team='$page_sonderwert' AND coach_status='1';";
                      
                    $result $conn->query($sql);
                          
                    $returnValue = array();
                        while( 
                    $row mysqli_fetch_assoc$result ) )
                        {
                               
                    $returnValue[] = $row;
                        }

                        return 
                    $returnValue;

                    }
                    $coaches coach();
                    echo 
                    $coaches['coach_id']; 
                    Zuletzt geändert von analyzer; 06.03.2008, 16:39.

                    Kommentar


                    • #11
                      Hab es jetzt so probiert und die variablen zugewiesen und ins array geladen.
                      PHP-Code:
                      $result $conn->query($sql);
                            while( 
                      $row mysqli_fetch_array$result ) )
                          {
                                
                      $coach_id $row['coach_id'];
                                
                      $coach_name $row['coach_name'];
                                
                      $coach_surname $row['coach_surname'];


                                
                      $returnValue[] = array("coach_id","coach_name","coach_surname");
                          }
                          return 
                      $returnValue;

                      geht aber trotzdem nicht

                      Kommentar


                      • #12
                        du bekommst ein multidimensionales array zurück, wenn du die funktion aufrufst.

                        demnach müsstest du das array mit for/each/foreach durchlaufen und dann erst auf die indexe zugreiffen.

                        ein var_dump oder print_r hätte dir das sofort gezeigt.
                        Freedom is a state of mind. Not a state in which we live.

                        troxdev.ch | animefieber

                        Kommentar


                        • #13
                          PHP-Code:
                          $returnValue = array();
                          while( 
                          $row mysql_fetch_assoc$result ) )
                          {
                            
                          $returnValue[] = $row;
                          }

                          return 
                          $returnValue
                          Das macht doch irgendwie keinen Sinn, nicht? Warum nehmt ihr nicht gleich sowas?

                          PHP-Code:
                          return mysql_fetch_assoc($result); 

                          Kommentar


                          • #14
                            Original geschrieben von jmc
                            Das macht doch irgendwie keinen Sinn, nicht? Warum nehmt ihr nicht gleich sowas?

                            PHP-Code:
                            return mysql_fetch_assoc($result); 
                            Weil es evtl. auch Ergebnisse gibt, die mehr als einen Datensatz zurückliefern?
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #15
                              Wenn du schon die mysqli-Funktionen benutzst - was durchaus zu empfehlen ist -, dann aber konsequent:
                              PHP-Code:
                              function coach($page_sonderwert){
                                  
                              $sql "
                                      SELECT 
                                          coach_id,
                                          coach_name,
                                          coach_surname
                                      FROM 
                                          coach 
                                      WHERE 
                                          coach_team = '
                              $page_sonderwert
                                        AND 
                                          coach_status = 1"
                              ;
                                  
                              $result $conn->query($sql) or die($conn->error);
                                  while (
                              $row $result->fetch_assoc()) {
                                      
                              $returnValue[] = $row;
                                  }
                                  return 
                              $returnValue;
                              }

                              $wert coach($bedingung); 
                              Was du mit diesen Daten nun machen willst, weiss ich natürlich nicht, und wie, das hat dir TroX schon gesagt
                              Gruss
                              H2O

                              Kommentar

                              Lädt...
                              X