Hallo zusammen
Bin momentan in einem Kurs zur Webdesignerin und stecke bei einer PHP Aufgabe fest.
Die Aufgabe lautet:
Erstellen Sie eine SQL-Abfrage zum Löschen aller Einträge in der Tabelle "ws_warenkorb", die älter als 14 Tage sind. Die Abfrage soll Teil einer privaten Methode sein. (a) wie könnte eine entsprechende Methode genannt werden? warenkorbLeeren habs ich genannt / b) Aus welcher anderen Methode sollte dies neue, private Methode aufgerufen werden? Dachte mir unter der public function auswahl($kunde) in class_webshop.php / c)In welcher Klasse sollte die Methode implementiert werden wg. des Sinnzusammenhangs? Dachte eben in class_webshop.php
Dazu haben wir verschiedene Klassen erzeugt. In der Klasse class_kunde.php hab ich folgendes eingefügt:
dies wollte ich dann in der class_webshop.php unter der public function auswahl($kunde) auführen
doch dann kommt folgende Fehlermeldung:
Fatal error: Call to private method kunde::warenkorbLeeren() from context 'webshop' in /var/www/vhosts/r2it.de/becca.r2it.de/PHP03-03/class_webshop.php on line 25
Kann mir da bitte wer von euch weiterhelfen? Wäre echt super
Bin momentan in einem Kurs zur Webdesignerin und stecke bei einer PHP Aufgabe fest.
Die Aufgabe lautet:
Erstellen Sie eine SQL-Abfrage zum Löschen aller Einträge in der Tabelle "ws_warenkorb", die älter als 14 Tage sind. Die Abfrage soll Teil einer privaten Methode sein. (a) wie könnte eine entsprechende Methode genannt werden? warenkorbLeeren habs ich genannt / b) Aus welcher anderen Methode sollte dies neue, private Methode aufgerufen werden? Dachte mir unter der public function auswahl($kunde) in class_webshop.php / c)In welcher Klasse sollte die Methode implementiert werden wg. des Sinnzusammenhangs? Dachte eben in class_webshop.php
Dazu haben wir verschiedene Klassen erzeugt. In der Klasse class_kunde.php hab ich folgendes eingefügt:
private function warenkorbLeeren()
{
$sql = "DELETE FROM ws_warenkorb WHERE DATEDIFF (NOW(), w_timestamp) >= 14";
$this->dbh->query($sql);
}
{
$sql = "DELETE FROM ws_warenkorb WHERE DATEDIFF (NOW(), w_timestamp) >= 14";
$this->dbh->query($sql);
}
public function auswahl($kunde) # zeigt ausgewählte Artikel
{
$this->kunde->warenkorbLeeren();
$sql = "SELECT a_datum AS a_konzerttermin, a_name AS a_veranstaltung, w_menge, a_preis FROM ws_warenkorb, ws_artikel WHERE w_kunde = $kunde AND w_artikelnr = a_artikelnr";
$result = $this->dbh->query($sql);
$tmp = $result->fetchAll(PDO::FETCH_ASSOC);
if (count($tmp) > 0)
{
print "<table align='center'>\n";
print " <tr>\n <th>Konzerttermin</th><th>Veranstaltung</th><th>Kartenanzahl</th><th>Preis</th>\n</tr>\n";
foreach($tmp as $key)
{
print " <tr>\n";
print " <td>".$key['a_konzerttermin']."</td><td>".$key['a_veranstaltung']."<td>".$key['w_menge']."</td><td>".$key['a_preis']."</td>\n";
print " </tr>\n";
}
print "</table>\n";
}
else
print "Keine Artikel im Warenkorb gefunden.";
}
{
$this->kunde->warenkorbLeeren();
$sql = "SELECT a_datum AS a_konzerttermin, a_name AS a_veranstaltung, w_menge, a_preis FROM ws_warenkorb, ws_artikel WHERE w_kunde = $kunde AND w_artikelnr = a_artikelnr";
$result = $this->dbh->query($sql);
$tmp = $result->fetchAll(PDO::FETCH_ASSOC);
if (count($tmp) > 0)
{
print "<table align='center'>\n";
print " <tr>\n <th>Konzerttermin</th><th>Veranstaltung</th><th>Kartenanzahl</th><th>Preis</th>\n</tr>\n";
foreach($tmp as $key)
{
print " <tr>\n";
print " <td>".$key['a_konzerttermin']."</td><td>".$key['a_veranstaltung']."<td>".$key['w_menge']."</td><td>".$key['a_preis']."</td>\n";
print " </tr>\n";
}
print "</table>\n";
}
else
print "Keine Artikel im Warenkorb gefunden.";
}
Fatal error: Call to private method kunde::warenkorbLeeren() from context 'webshop' in /var/www/vhosts/r2it.de/becca.r2it.de/PHP03-03/class_webshop.php on line 25
Kann mir da bitte wer von euch weiterhelfen? Wäre echt super

Kommentar