Einzelnen Beitrag anzeigen
  #1  
Alt 12.06.2010, 17:57:42
Leyyin Leyyin ist offline
Anfänger
 
Registriert seit: May 2010
Alter: 44
Beiträge: 67
Attributenaufruf in einer anderen Klasse

Hallo,

schon wieder steht mir ein Problem gegenüber, das mich verrückt macht, und zwar folgendes:

ich versuche gerade mehrere Atrribute einer Klasse, die davor jeweils mit einem Wert gesetzt sind, in einer anderen Klasse zu verwenden.

PHP-Code:
//person_neu.php
//...
if (isset ($_POST['submit'])) {
        
$person = new Person;
        
//Hiermis werden alle Attributen gesetzt:
        
$person -> setPerson($_POST);
        
//...
        
SqlQuery::insertNewMail();
        echo 
"Der Eintrag ist erfolgreich in DB geschrieben worden!\n";
        echo 
'<p><a href="../person_neu.php">&lt;&lt; Zur&uuml;ck zu "Neue Person Einf&uuml;gen"-Seite</a></p>';
//...

//Person.php
class Person
{
    public 
$id;
    public 
$titel;
    public 
$vname;
    public 
$nname;
    public 
$str;
    public 
$hnr;
    public 
$plz;
    public 
$ort;
    public 
$email;

    public function 
setPerson (array $parametern){
       
$this->titel mysqli_real_escape_string($this->db, ($parametern['titel']));
       
$this->vname mysqli_real_escape_string($this->db, ($parametern['vorname']));
       
$this->nname mysqli_real_escape_string($this->db, ($parametern['nachname']));
       
$this->str mysqli_real_escape_string($this->db, ($parametern['str']));
       
$this->hnr mysqli_real_escape_string($this->db, ($parametern['hausnr']));
       
$this->plz mysqli_real_escape_string($this->db, ($parametern['plz']));
       
$this->ort mysqli_real_escape_string($this->db, ($parametern['ort']));
       
$this->email mysqli_real_escape_string($this->dbtrim($parametern['email']));
}
}

//SqlQuery.php
class SqlQuery
{
   public static function 
insertNewMail() {

        
//INSERT INTO ak_teilnehmer

        
$sql_insert_t "INSERT INTO ak_teilnehmer
                                    (t_titel, t_vname, t_nname,
                                     t_str, t_hnr, t_plz, t_tel, t_mobil, t_email)
                         VALUES (
                                    '"
.$person->titel."',
                                    '"
.$person->vname."',
                                    '"
.$person->nname."',
                                    '"
.$person->str."',
                                    '"
.$person->hnr."',
                                    '"
.$person->plz."',
                                    '"
.$person->email."'
                                )
                        "
;
        
$insert_t self::$db->query($sql_insert_t) or die('Etwas stimmte mit dem Query $sql_insert_t nicht: '.self::$db -> error);
        
//...
    
}

Soo... Wenn ich diese Code verwende, wird ein ID für die neue Person in DB zwar erzeugt aber alle zugehörige Felder sind leer ausser dem id-Feld. Wahrscheinlich holt z.B. $person->vname in der Methode insertNewMail() nicht den per $_POST gesetzte Wert sondern einfach ein leeres String... Aber wie kann ich dieses Problem überwinden?

Ach noch etwas:
Ich möchte den Satz "Der Eintrag ist erfolgreich in DB geschrieben worden!" erst dann sehen, wenn meine SqlQuery::insertNewMail(); tätsächlich erfolgreich abgeschlossen worden ist. Wie kann ich das einstellen?

Vielen vielen dank für alle Antworten schon jetzt.
Mit Zitat antworten