• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

OOP mit DB

newpower001

Mitglied
Hallo,

Da ich ein Neueinsteiger bin in PHP und etwas über OOP gelernt habe habe ich mal etwas ausprobiert. Bitte keine Dummen Kommentare or sonstiges wenn es schwachsinnig ist sondern dann einfach ein Verbesserungsvorschlag bzw. ein anderen Tipp mir vorschlagen oder ein anderen Vorgang.

Ich habe etwas gecodet jedoch zeigt er mir keine ausgabe. Hier der Code:

PHP
PHP:
<?php
class Datenbank {
  
    private $verbindung;
    private $dbas;
    public $dt;
  
    function Connect($con) {
    $this->verbindung = $con;
    $con = mysqli_connect("", "root");
    }
  
    function DBAUSWAHL($newauswahl)
    {
    $this->dbas = $newauswahl;
    mysqli_select_db($con, "userdaten");
  
    $res = mysqli_query($con, "select * from personen");
  
    $num = mysqli_num_rows($res);
  
    while ($dt = mysqli_fetch_assoc(res))
    {
    echo $dt["vorname"] . "<br>";
    }
    }
  
    function ausgabe()
    {

    }
  
}

$db = new Datenbank();
$db->ausgabe();
?>

Habe es auch in der function ausgabe() mit echo versucht jedoch erscheint eine Fehlermeldung. Wenn ich das Programm jetz so schreibe wie es oben steht entsteht keine Fehler-Meldung jedoch keine Ausgabe auf dem Bildschirm.
 
Werbung:
Also was mir jetzt spontan auffällt, wäre z.B. das du den Sichtbarkeitsbereich von Funktionen auch angegeben solltest.

Klassenmethoden müssen mit public, private oder protected definiert werden. Methoden ohne jede explizite Deklaration sind als public definiert.
Trotzdem am besten immer ein public davor. ;)

keine Ausgabe auf dem Bildschirm.
Deine Funktion ausgabe() macht ja auch nichts. Sie hat keinen Rückgabewert, der ausgegeben werden könnte.

Schau dir mal das Tutorial zur OOP in PHP5 von Peter Kropff an.
 
Zuletzt bearbeitet:
Bitte keine Dummen Kommentare or sonstiges wenn es schwachsinnig ist
Doch, das kann ich mir nicht verkneifen. Es macht doch keinen Sinn, wenn du in einer Funktion den Datenbank- und Tabellennamen fest verdrahtest! Aktuell ist deine Klasse schwachsinnig
sondern dann einfach ein Verbesserungsvorschlag bzw. ein anderen Tipp mir vorschlagen oder ein anderen Vorgang.
  1. Die Methode Connect wird nie aufgerufen
  2. Warum setzt du in Connect $con auf $this->verbindung? Das ist Quatsch!
  3. Die Verbindung wird in Connect nicht gespeichert
  4. Funktionsnamen komplett in Großbuchstaben sollte man lassen
  5. $con ist in DBAUSWAHL nicht bekannt
  6. Die Methode wird nie aufgerufen
  7. Eine Fehlerüberprüfung fehlt
  8. Wenn du $num nicht brauchst, macht es auch keinen Sinn, die Anzahl zu ermitteln
  9. Die Methode ausgabe macht nichts, also was erwartest du da

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html
 
Werbung:
@bdt600 hat wieder zugeschlagen! Du warst so nett und hast dir wenigstens die Mühe gemacht, alles aufzuzählen. xD
 
Zurück
Oben