Ankündigung

Einklappen
Keine Ankündigung bisher.

Variablen von Klasse zu Klasse übergeben

Einklappen

Neue Werbung 2019

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

  • Variablen von Klasse zu Klasse übergeben

    Hallo Zusammen,

    ich möchte gerne einige Variablen von einer Klasse zur nächsten übergeben.
    Habe da schon was gelesen bezgl. Vererbung allerdings funktioniert das nicht.

    Ich poste mal den Code.
    Klasse 1:
    PHP-Code:
    class mp3_tags{

        function 
    mp3_tags_ausgabe(){
            
    //MP3 Tags auslesen
            
    $filename "./songs/".$_FILES['userfile']['name'];
            
            require_once(
    './id3/getid3/getid3.php');
            
            
    $getID3 = new getID3;
            
    $ThisFileInfo $getID3->analyze($filename);
            
            
    $artist = ($ThisFileInfo['tags']['id3v2']['band'][0]);
            
    $title = ($ThisFileInfo['tags']['id3v2']['title'][0]);
            
    $album = ($ThisFileInfo['tags']['id3v2']['album'][0]);
            
    $year = ($ThisFileInfo['tags']['id3v2']['year'][0]);
            
    $duration = ($ThisFileInfo['playtime_string']);
            
            
    $picture = ($ThisFileInfo['comments']['picture']['0']['data']);
            
    $pic_format = ($ThisFileInfo['comments']['picture']['0']['image_mime']);
            
            
    $returnstring '';
            
    $returnstring .= '<div class="song">';
            
    $returnstring .= '<div class="artist"><h3>Artist:</h3>'.$artist.'</div>';
            
    $returnstring .= '<div class="title"><h3>Titel:</h3>'.$title.'</div>';
            
    $returnstring .= '<div class="album"><h3>Album:</h3>'.$album.'</div>';
            
    $returnstring .= '<div class="year"><h3>Erscheinungsjahr:</h3>'.$year.'</div>';
            
    $returnstring .= '<div class="duration"><h3>Spieldauer:</h3>'.$duration.'</div>';
            
    $returnstring .= '<div class="picture"><h3>Bild</h3><img src="data:'.$pic_format.';base64,'.base64_encode($picture).'" width="100" height="100"></div>';
            
    $returnstring .= '</div>';
        
            echo 
    $returnstring;
        }

    Klasse 2
    PHP-Code:
    class mysql extends mp3_tags{
        
        public 
    $verbindung;
        
        function 
    mysql_verbindung(){
            
    //DB Verbindung herstellen
            
    $verbindung mysql_connect ("localhost","root""usbw") or die ("keine Verbindung möglich. Benutzername oder Passwort sind falsch");
            
    mysql_select_db("test") or die ("Die Datenbank existiert nicht.");
            
            
    //$abfrage = "SELECT * FROM mp3";
            //$ergebnis = mysql_query($abfrage) or die("Error: $abfrage <br>".mysql_error());
            
            //Ausgabe der DB->mp3
            //while($row = mysql_fetch_object($ergebnis))
            //   echo "$row->id, $row->album, $row->title, $row->artist, $row->year, $row->duration, $row->picture, $row->dir <br>";
            
            
    return $verbindung;    
        }
        
        function 
    mysql_mp3_tags_push_to_db($verbindung){
            
    $sql "INSERT INTO mp3 (album, title, artist, year, duration, picture, dir ) VALUES 
                ('"
    .$album."','".$title."','".$artist."','".$year."','".$duration."','".base64_encode($picture)."','".$filename."')";   
            
    mysql_query($sql,$verbindung) or die(mysql_error());                
        }

    Es geht um die Variablen album,title, artist, year, duration, picture, filename..
    Diese müssten von Klasse 1 zu Klasse 2 übergeben werden.

    Ich hoffe, dass ihr mir helfen könnt

    lg cgee


  • #2
    OO heißt in Objekten zu denken, nicht in Klassen. Damit fängts schon mal an.
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Zitat von nikosch Beitrag anzeigen
      OO heißt in Objekten zu denken, nicht in Klassen. Damit fängts schon mal an.
      Hilft nicht weiter.

      Kommentar


      • #4
        Dass Du Dich bisher 0 mit Objektorientierung beschäftigt hast, hilft auch nicht weiter.
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Was nikosch sagt ist natürlich überspitzt und nicht hilfreich - aber er hat insofern recht als dass dir da doch Grundlagen offenbar fehlen. Ich rate dir dich mit OOP weiter oder nochmal auseinander zu setzen.

          Kommentar


          • #6
            Ich kann meinen Post leider nicht editieren, wohl aufgrund des Verschiebens des Threads.

            cgee es gibt verschiedene Arten wie du diese Variablen übergeben kannst.

            Deine Klasse mysql erweitert die Klasse mp3_tags, daher kann sie die Methoden aus mp3_tags nutzen. Sie kann also mp3_tags_ausgabe() aufrufen:
            PHP-Code:
            $this->mp3_tags_ausgabe(); 
            Daraus lässt sich was basteln (Sitchwort: Parameter als Referenz übergeben) aber das wäre schlecht. Du solltest vielmehr darüber nachdenken, die Methode in zwei Methoden aufzuteilen:
            - eine holt die MP3-Tags aus der Datei (Methode holeTags(), gibt die Tags zurück )
            - eine baut daraus die HTML-Ausgage zusammen (Methode gebeTagsAus(), gibt HTML-Code zurück )
            Dann kannst du in der Methode mysql_mp3_tags_push_to_db() die Methode holeTags() aufrufen und so die Tags erhalten.

            Noch besser wäre aber die Tags nur einmal aus der Datei zu lesen und für gebeTagsAus() und mysql_mp3_tags_push_to_db() zwischenzuspeichern.

            Kommentar

            Lädt...
            X