PHP Klassen

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

  • PHP Klassen

    hi, also vorweg:
    ich habe noch nie zuvor nur eine klasse angeguckt und probiere gerade was zusammen zu fuchteln
    ....ohne erfolg.

    mein ziel: mit einer klasse sämtliche mysql abfragen durchführen zu können.
    mein problem: keine ahnung von nichts.

    hier mal ein teil meiner klasse

    PHP-Code:
    class mysql{
    var 
    $host;
    var 
    $user;
    var 
    $pass;
    var 
    $db;
    var 
    $query;
    var 
    $table;
    var 
    $praefix;
    // hier zda zwischen sind noch login und andere abfragen die sogar funktionieren
    function selectdb($connect$db)
    {
    $this->select_db mysql_select_db($db$this->connect);
    if(!
    $this->select_db)
    {
      die(
    "Error: ".mysql_error());
    }
    }
    }
    $mysql = new mysql;
    $mysql->login($host$user$pass);
    $mysql->connection($this->host$this->user$this->$pass);
    $mysql->selectdb($this->connect$db); 
    okay, das funktionier auch allles schon soweit, doch ich hab ein verständnis problem:

    $this->select_db = mysql_select_db($db, $this->connect);
    warum muss das so stehen und nicht so:

    $this->select_db = mysql_select_db($this->db, $this->connect);

    warum muss man das so machen?
    danke für eure hilfe.
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

  • #2
    Re: PHP Klassen

    okay, das funktionier auch allles schon soweit, doch ich hab ein verständnis problem:

    $this->select_db = mysql_select_db($db, $this->connect);
    warum muss das so stehen und nicht so:

    $this->select_db = mysql_select_db($this->db, $this->connect);

    warum muss man das so machen?
    danke für eure hilfe. [/B]
    du hast kein verständnis-problem, da nämlich beide varianten funktionieren sollten, gesetz der fall die klasseneigene variable $db ist vom typ "string". gibt dir der parser irgendwelche fehler aus, wenn du die zweite variante verwendest? btw: deine namensgebung der variablen und funktionen ist katastrophal, ich hoffe du hast deinen code gut auskommentiert.

    Kommentar


    • #3
      es funktioniert nur die variante. ansonsten gibbet n fehler.


      PHP-Code:
      class mysql{
      var 
      $host;
      var 
      $user;
      var 
      $pass;
      var 
      $db;

      ////////////////////////////////////////////////////////////
      function login($host$user$pass)
      {
      $this->host $host
      $this->user $user;
      $this->pass $pass;
      $this->db $db;
      }
      ////////////////////////////////////////////////////////////
      function connection($host$user$pass)
      {
      $this->connect $connect mysql_connect($this->host$this->user$this->pass);
      if(!
      $this->connect)
      {
        die(
      "Error: ".mysql_error());
      }
      }
      /////////////////////////////////////////////////////////////
      function selectdb($connect$db)
      {
      $this->select_db mysql_select_db($db$this->connect);
      if(!
      $this->select_db)
      {
        die(
      "Error: ".mysql_error());
      }
      }

      }
      // end of class
      $mysql = new mysql;
      $mysql->login('localhost''''') or $mysql->mysqlerror();
      $mysql->connection($this->host$this->user$this->pass);
      $mysql->selectdb($this->connect$db); 
      warum geht das nicht?
      Sunshine CMS
      BannerAdManagement
      Borlabs - because we make IT easier
      Formulargenerator [color=red]Neu![/color]
      Herkunftsstatistik [color=red]Neu![/color]

      Kommentar


      • #4
        warum geht das nicht?
        ganz einfach, weil die variable $db in deiner funktion keinen wert hat. EDIT: zum verständnis: $db der klasse.

        drei möglichkeiten:
        1. du nimmst für $db ne globale variable, die du dann auch in der funktion selbst mit "global $db;" einführen musst.
        2. du übergibst $db in deiner funktion
        PHP-Code:
        function login($host$user$pass$db)
        {
        $this->host $host
        $this->user $user;
        $this->pass $pass;
        $this->db $db;

        oder 3. du nutzt für deine datenbankdaten konstanten.

        ich selbst habe mich für 3. entschieden...

        Kommentar


        • #5
          Du hast vergessen, die Variable $select_db zu definieren.

          Kommentar


          • #6
            @benny: beim klassenprogrammieren (wie auch eigentlich sonst immer) mit errorreporting E_ALL arbeiten!

            Kommentar


            • #7
              @tobi: wie mach ich das mit errorreporting ?
              @celbi : Du hast vergessen, die Variable $select_db zu definieren. - <??

              wie jetzt.

              PHP-Code:
              function selectdb($connect$db)
              {
              $this->select_db mysql_select_db($db$this->connect);
              if(!
              $this->select_db)
              {
                die(
              "Error: ".mysql_error());
              }

              und unten rufe ich doch
              PHP-Code:
              $mysql->selectdb($this->connect$db); 
              auf. ist das so falsch???
              Sunshine CMS
              BannerAdManagement
              Borlabs - because we make IT easier
              Formulargenerator [color=red]Neu![/color]
              Herkunftsstatistik [color=red]Neu![/color]

              Kommentar


              • #8
                nach deiner letzten mail solltest du deine frage vielleicht nochmal überdenken!

                Kommentar


                • #9
                  mein du error reporting in der php.ini?

                  ich hab echt kein peil davon.

                  EDIT:
                  error_reporting(E_ERROR|E_WARNING|E_PARSE|E_NOTICE|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COM PILE_WARNING|E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE);

                  das meinste oder????
                  Zuletzt geändert von Benny-one; 14.12.2003, 15:25.
                  Sunshine CMS
                  BannerAdManagement
                  Borlabs - because we make IT easier
                  Formulargenerator [color=red]Neu![/color]
                  Herkunftsstatistik [color=red]Neu![/color]

                  Kommentar


                  • #10
                    nur das gehört da hin.
                    Code:
                    error_reporting  =  E_ALL
                    mehr nicht.

                    und ein wenig weiter gehört sich das so...
                    Code:
                    register_globals = Off
                    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


                    • #11
                      in der php.ini?? das hatten wir doch schon mal odeR?
                      Sunshine CMS
                      BannerAdManagement
                      Borlabs - because we make IT easier
                      Formulargenerator [color=red]Neu![/color]
                      Herkunftsstatistik [color=red]Neu![/color]

                      Kommentar


                      • #12
                        Code:
                        class mysql{
                        var $host;
                        var $user;
                        var $pass;
                        var $db;
                        Hier fehlt noch $select_db:

                        Code:
                        class mysql{
                        var $host;
                        var $user;
                        var $pass;
                        var $db;
                        var $select_db;
                        Sonst kannst du ihr ja keinen Wert zuweisen:

                        Code:
                        $this->select_db = mysql_select_db($db, $this->connect);

                        Kommentar


                        • #13
                          in der php.ini??
                          Ja.wo sonst.
                          das hatten wir doch schon mal odeR?
                          wir hatten das schon so oft!

                          Kommentar


                          • #14
                            @tobi: a, das hab ich längst drin, b war das auf haxe bezogen.

                            PHP-Code:
                            $host 'localhost'// << das sind die daten in der config die oben includet werden
                            $dbuser '';
                            $dbpass '';
                            $db '123';
                            $tab 'test';

                            class 
                            mysql{
                            var 
                            $host;
                            var 
                            $user;
                            var 
                            $pass;
                            var 
                            $db;
                            var 
                            $query;
                            var 
                            $table;
                            var 
                            $prefix;
                            var 
                            $select_db;

                            ////////////////////////////////////////////////////////////
                            function login($host$user$pass)
                            {
                            error_reporting(E_ERROR|E_WARNING|E_PARSE|E_NOTICE|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COMPILE_WARNING|E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE); 

                            $this->host $host
                            $this->user $user;
                            $this->pass $pass;
                            }
                            ////////////////////////////////////////////////////////////
                            function connection($host$user$pass)
                            {
                            error_reporting(E_ERROR|E_WARNING|E_PARSE|E_NOTICE|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COMPILE_WARNING|E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE); 
                            $this->connect $connect mysql_connect($this->host$this->user$this->pass);
                            if(!
                            $this->connect)
                            {
                              die(
                            "Error: ".mysql_error());
                            }
                            }
                            /////////////////////////////////////////////////////////////
                            function selectdb($connect$db)
                            {
                            $this->select_db mysql_select_db($db$this->connect);
                            if(!
                            $this->select_db)
                            {
                              die(
                            "Error: ".mysql_error());
                            }
                            }

                            $mysql = new mysql;
                            $mysql->login('localhost''''') or die("Fehler1: ".mysql_error());
                            $mysql->connection($this->host$this->user$this->pass) or die("Fehler2: ".mysql_error());
                            $mysql->selectdb($this->connect$db) or die("Fehler3: ".mysql_error());
                            $mysql->ms_select(""$this->prefix"banner_config") or die("Fehler4: ".mysql_error()); 
                            jetzt sach mir das script, das in login ein fehler ist. ich hab das script offline, da habe ich keine mysql benutzer bzw. pass.
                            Sunshine CMS
                            BannerAdManagement
                            Borlabs - because we make IT easier
                            Formulargenerator [color=red]Neu![/color]
                            Herkunftsstatistik [color=red]Neu![/color]

                            Kommentar


                            • #15
                              1. wenn du es wirklich schon drin gehabt hättest, hättest du schon meldungen bekommen und hättest vermutlich gewusst, worum es geht!

                              2. gib doch mal ne korrekte problembeschreibung. du bist doch nicht mehr neu!

                              Kommentar

                              Lädt...
                              X