barbar2011
Grünschnabel
Hallo zusammen
ich bin grad am üben und komme nicht weiter.Und zwar ich habe einen Shop erstellt mit Verbindung zu MySql und alle Artikel werden aus dem $artikelArray entnommen.Jetzt möchte ich auszuprobieren alle lieferbaren Artikel direkt per Datenbankabfrage in der Methode webshop::anzeigen zu holen und sie auszugeben.
Da komme ich einfach nicht weiter,wo und wie ich anfangen soll.
Ich habe schon klassen artikel,webshop,kunde,texte etc.erstellt.Und ich weiss das die klassen artikel und webshop veändert werden sollen aber egal wie ich anfange bekomme ich nur Fehlermeldungen.
Vielleicht habt einen Tipp für mich ,wäre super..
Danke schon im Vorraus
class_artikel
class_webshop
ich bin grad am üben und komme nicht weiter.Und zwar ich habe einen Shop erstellt mit Verbindung zu MySql und alle Artikel werden aus dem $artikelArray entnommen.Jetzt möchte ich auszuprobieren alle lieferbaren Artikel direkt per Datenbankabfrage in der Methode webshop::anzeigen zu holen und sie auszugeben.
Da komme ich einfach nicht weiter,wo und wie ich anfangen soll.
Ich habe schon klassen artikel,webshop,kunde,texte etc.erstellt.Und ich weiss das die klassen artikel und webshop veändert werden sollen aber egal wie ich anfange bekomme ich nur Fehlermeldungen.
Vielleicht habt einen Tipp für mich ,wäre super..
Danke schon im Vorraus
class_artikel
PHP:
require_once ("class_sitzungsSeite.php");
class artikel extends sitzungsSeite
{
protected $artikelArray = array();
private $DB = array('database'=>'xxxxxx',
'user'=>'xxxxx',
'password'=>'geheim');
protected $dbh;
public function __construct()
{
parent::__construct();
if(!is_array($this->DB) && empty($this->DB ['database']))
throw new Exception("Daten für Datenbankverbindung fehlen!");
else
{
$connectString = "mysql:dbname=".$this->DB ['database'].
";host=localhost";
try
{
$this->dbh = new PDO($connectString, $this->DB ['user'],
$this->DB['password']);
$this->dbh->setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$sql ="SELECT a_artikelnr,a_datum, a_name ,a_menge , a_preis
FROM ws_artikel
WHERE a_menge > 0";
"SELECT a_artikelnr, a_termin, a_name AS_veranstaltung, a_preis, a_menge AS_kartenvorrat" ;
$result = $this->dbh->query($sql);
$tmp = $result->fetchAll(PDO::FETCH_ASSOC);
foreach ($tmp as $key => $value)
{
foreach($value as $k1 => $v1)
{
$name = split("_", $k1);
if ($k1 != 'a_artikelnr')
$this->artikelArray[$value['a_artikelnr']][$name[1]] = $v1;
}
}artikel
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
}
public function waehlen($artikelnummer, $kunde)
{
if(!empty($artikelnummer) && !empty($kunde))
{
try
{
$sql = "UPDATE ws_warenkorb
SET w_menge = w_menge+1
WHERE w_artikelnr = :nummer
AND w_kunde = :kunde";
$result = $this->dbh->prepare($sql);
$result->bindParam(':nummer', $artikelnummer, PDO::PARAM_INT);
$result->bindParam(':kunde', $kunde, PDO::PARAM_INT);
$result->execute();
if ($result->rowCount() == 1)
return true;
$sql = "INSERT INTO ws_warenkorb (w_artikelnr, w_kunde, w_menge)
VALUES (:nummer, :kunde, 1)";
$result = $this->dbh->prepare($sql);
$result->bindParam(':nummer', $artikelnummer, PDO::PARAM_INT);
$result->bindParam(':kunde', $kunde, PDO::PARAM_INT);
$result->execute();
if ($result->rowCount() == 1)
{
print "Datensatz wurde eingetragen.";
return true;
}
return false;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
}
public function bestellen($kunde)
{
if(!is_integer($kunde))
throw new Exception('Keine Kundennummer');
else
{
try
{
$sql = "SELECT w_kunde, w_artikelnr, w_menge
FROM ws_warenkorb
WHERE w_kunde = :kunde";
$result = $this->dbh->prepare($sql);
$result->bindParam(':kunde', $kunde,PDO::PARAM_INT);
$result->execute();
$tmp = $result->fetchAll(PDO::FETCH_ASSOC);
foreach($tmp as $key =>$value)
{
$sql = "INSERT INTO ws_bestellung (b_kunde,
b_artikelnr,
b_menge)
VALUES ( :kunde, :artikel, :menge)";
$result = $this->dbh->prepare($sql);
$result->execute(array(':kunde' => (int)$value['w_kunde'],
':artikel' => (int)$value['w_artikelnr'],
':menge' => $value['w_menge'])
);
if($result->rowCount() == 1)
{
$sql1 = "UPDATE ws_artikel
SET a_menge = a_menge - :anzahl
WHERE a_artikelnr = :artikel";
$result1 = $this->dbh->prepare($sql1);
$result1->bindParam(':anzahl', $value ['w_menge'],
PDO::PARAM_INT);
$result1->bindParam(':artikel', $value['w_artikelnr']);
$result1->bindParam(':datum', $value['w_artikelnr']);
$result1->execute();
if($result1->rowCount() == 1)
{
$sql2="DELETE FROM ws_warenkorb
SELECT DATE_FORMAT ('2011-07-27', '%d');->'14'
WHERE w_kunde = :kunde
AND w_artikelnr = :artikel";
$sth2 = $this->dbh->prepare($sql2);
$sth2 ->execute(array(':kunde' => (int)$kunde,
':artikel' => (int)$value['w_artikelnr']));
}
$error = true;
}
}
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
session_destroy();
return $error;
}
}
PHP:
require_once ("class_artikel.php");
require_once ("class_pdf.php");
require_once ("class_kunde.php");
class webshop extends artikel
{
private $pdf;
private $kunde;
public function __construct()
{
parent:: __construct();
$this->pdf = new pdf();
$this->kunde = new kunde($this->dbh);
}
public function auswahl($kunde)
{
$sql = "SELECT a_name, w_menge
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>\n";
print " <tr>\n <th>Artikel</th><th>Anzahl</th>\n
</tr>\n";
foreach($tmp as $key)
{
print "<tr>\n";
print " <td>".$key['a_name'].
"</td><td>".$key['w_menge']."</td>\n";
print "</tr>\n";
}
print "</table>\n";
}
else
print "Keine Artikel im Warenkorb gefunden.";
}
public function anzeigen()
{
print "<table>\n";
print" <tr>\n <th>Konzerttermin</th> <th>Veranstaltungen</th> \n<th>Kartenvorrat</th>\n <th>Preis</th> \n";
foreach($this->artikelArray as $key => $value)
{
print " </tr>\n";
foreach($value as $subKey => $subVal)
{
if($subKey == "name")
print " <td>".$subVal."</td>";
elseif($subKey == "menge")
print "<td align=\"center\">".$subVal."</td>";
elseif ($subKey == "preis")
print "<td align = \"right\">".$subVal." Euro
</td>";
elseif($subKey == "datum")
print "<td align =\"center\">".$subVal."</td>";
}
print "<td><a href=\"".$_SERVER['PHP_SELF'].
"?id=".$key."\">In den Warenkorb</a></td>\n";
print " </tr>\n";
}
print " </table>\n";
}
private function setArtikel($daten)
{
$this->pdf->SetLeftMargin(35);
$this->pdf->Cell(30,5,"Artikelnummer",1,0,'C');
$this->pdf->Cell(60,5,"Artikel",1,0,'C');
$this->pdf->Cell(30,5,"Preis",1,0,'R');
$this->pdf->Cell(30,5,"Menge",1,0,'R');
foreach ($daten as $key =>$value)
{
$this->pdf->ln();
$this->pdf->Cell(30,5,$key,1,0,'C');
$this->pdf->Cell(60,5,iconv('UTF-8', 'ISO-8859-15',
$value['name']),1,0);
$this->pdf->Cell(30,5,$value['preis']." Euro",1,0,'R');
}
}
public function pdfliste()
{
$this->pdf->setTitel("Liste bestellbarer Artikel");
$this->pdf->AliasNbPages();
$this->pdf->AddPage();
$this->pdf->SetFont('Times','',12);
$text="Sehr geehrter Kunde,\n\nvielen Dank,dass Sie sich".
"für unser Angebot interessieren. Folgende Artikel".
" können Sie in unserem Shop (http://".
$_SERVER['HTTP_HOST'].")bestellen.\n";
$this->pdf->setText($text);
$this->setArtikel($this->artikelArray);
$text = "\n\nVielen Dank für Ihr Interesse.";
$this->pdf->setText($text);
$this->pdf->Output();
}
public function setKundenNummer($kennung, $passwort)
{
$this->KndNr = 0;
if(!empty($kennung) && !empty($passwort))
{
try
{
$sql = "SELECT k_kundennummer
FROM ws_kunde
WHERE k_kennung = :kennung
AND k_passwort = :passwort";
$result = $this->dbh->prepare($sql);
$result->bindParam(':kennung', $kennung,
PDO::PARAM_STR, 20);
$result->bindParam(':passwort', $passwort,
PDO::PARAM_STR, 32);
$result->execute();
$tmp = $result->fetchAll();
if(isset($tmp[0]['k_kundennummer']) &&
!empty($tmp[0]['k_kundennummer']))
{
$this->KndNr =
(integer)$tmp[0]['k_kundennummer'];
}
$_SESSION['kunde'] = $this->KndNr;
return $this->KndNr;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
}
public function setKundenDaten($daten)
{
if(!is_array($daten)) return false;
try
{
$sql = "INSERT INTO ws_kunde (k_name, k_vorname,
k_plz, k_ort,
k_strasse, k_email, k_passwort,
k_kennung)
VALUES (:name, :vorname,:plz, :ort, :strasse, :email,
:passwort, :kennung)";
$result = $this->dbh->prepare($sql);
$result->bindParam(':name', $daten['name'],
PDO::PARAM_STR, 30);
$result->bindParam(':vorname', $daten['vorname'],
PDO::PARAM_STR, 30);
$result->bindParam(':plz', $daten['plz'],
PDO::PARAM_STR, 6);
$result->bindParam(':ort', $daten['ort'],
PDO::PARAM_STR, 20);
$result->bindParam(':strasse', $daten['strasse'],
PDO::PARAM_STR, 30);
$result->bindParam(':email', $daten['email'],
PDO::PARAM_STR, 30);
$result->bindParam(':passwort', $daten['passwort'],
PDO::PARAM_STR, 32);
$result->bindParam(':kennung', $daten['kennung'],
PDO::PARAM_STR, 20);
$result->execute();
if($result->rowCount() == 1)
{
print "Datensatz wurde eingetragen.";
return true;
}
else
return false;
}
catch(PDOException $e)
{
echo $e->getMessage();
}
}
public function getKundenNummer()
{
return $this->kunde->getKundenNummer();
}
}