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"><< Zurück zu "Neue Person Einfü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->db, trim($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.