Logo - MyWebsolution.de
User gesamt  :  1785627
User online  :  1
KubaSeoTräume, PHP Forum, PHP Community and more ... MyWebsolution.de!
   
   
 
Registrieren Login User F.A.Q Suche Home

eingeloggt bleiben

MyWebsolution.de Foren » Anfängerfragen PHP und MYSQL » Per Datenbank artikel holen und ausgeben

Seite: 1 Posts pro Seite: 5 10 20
Autor Thread
28.07.2011 13:10 Uhr Per Datenbank artikel holen und ausgeben
barbar2
User
 
registriert 28.07.2011
wohnt in Frankfurt
Beiträge 1
Hallo zusammen
Ich bin am üben und habe einen kleinen shop erstellt.
Nun möchte ich das zwei klassen(artikel und webshop) nicht mehr dem $artikelarray entnommen werden, sondern direkt per Datenbankabfrage in eine Methode webshop anzeigen() geholt werden.
Jetzt weiss ich nicht wie ich anfangen soll bzw. wo und wie soll ich die KLassen artikel und webshop ändern.Kann mir jemand ein Tipp geben? Danke schon mal im vorraus
PHP:

<?php
require_once ("class_sitzungsSeite.php");
class 
artikel extends sitzungsSeite

{
private 
$artikelArray = array();
private 
$DB = array('database' => 'uxxxxx',
'user' => 'axxxxx',
'password' => 'xxxxx');
protected 
$dbh# Database-Handle

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_termin, a_name AS_veranstaltung, a_preis, a_menge AS_kartenvorrat
FROM ws_artikel
WHERE a_menge > 0"
;
$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;
}
}
}
catch(
PDOException $e)
{
echo 
$e->getMessage();
}
}
}
public function 
anzeigen()
{
print 
" <table cellpadding=\"7\">\n";
print 
" </tr>\n ";
#holen des numerischen Indizes
$tmp array_keys($this->artikelArray);
#Durchsuchen nach den assoziativen Schlüsseln
foreach($this->artikelArray[$tmp[0]] as $key =>
$value)
{
#Ersten Buchstabn groß sezen
print "<th>".ucwords($key)."</th>";
}
print 
"\n</tr>\n";
#Alle Datenfelder ausgeben
foreach($this->artikelArray as $key => $value)
{
print 
"<tr style=\"text-align: left;\">\n";
foreach(
$value as $subKey => $subVal)
{
if (
$subKey == "preis"#prüfen, um Euro-Text anzuhängen
print "<td align=\right\">".$subVal." Euro
</td>\n"
;
else
print 
"<td>".$subVal."</td>\n";
}
print 
"<td><a href=\"".$_SERVER['PHP_SELF']."?id=".
$key.
"\">In den Warenkorb</a></td>\n";
print 
" </tr>\n";
}
print 
"</table>\n";
}


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'$artikelnummerPDO::PARAM_INT);
$result->bindParam(':kunde'$kundePDO::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'$artikelnummerPDO::PARAM_INT);
$result->bindParam(':kunde'$kundePDO::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)) # Gültige Kundennummer?
throw new Exception('Keine Kundennummer'); # Fehler ausgeben
else
{
try
{
#in Datenbank schreiben
$sql "SELECT w_kunde, w_artikelnr, w_menge
FROM ws_warenkorb
WHERE w_kunde = :kunde"
;
$result $this->dbh->prepare($sql);
$result->bindParam(':kunde'$kundePDO::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->execute();
if (
$result1->rowCount() == 1)
{
$sql2 "DELETE FROM ws_warenkorb
WHERE w_kunde = :kunde
AND w_artikelnr = :artikel"
;
$sql2 $this->dbh->prepare($sql2);
$sql2->execute(array(':kunde' => (int)$kunde,
':artikel' => (int)$value['w_artikelnr']));
}
$error true;
}
}
}
catch(
PDOException $e)
{

echo 
$e->getMessage();
}
}
session_destroy();
return 
$error;
}
}
?>
Die Class_webshop

<?php
require_once("class_webshop.php");
require_once(
"texte.php");
$art = new webshop();
$art->setKundenNummer("anne1963""abcd");
if(isset(
$_REQUEST['pdf']))



if(isset(
$_REQUEST['daten']))
$art->setKundenDaten(
array(
'name' => $_REQUEST ['name'],
'vorname' => $_REQUEST['vorname'],
'plz' => $_REQUEST['plz'],
'passwort' => $_REQUEST['passwort'],
'ort' => $_REQUEST['ort'],
'strasse' => $_REQUEST['strasse'],
'kennung' => $_REQUEST['kennung'],
'email' => $_REQUEST['email']
));

$art->setTitel($titeltext);
$art->kopf();

if (!empty(
$_REQUEST['kennung']) &&
!empty(
$_REQUEST['passwort']))
{
#zum Shop
$art->setKundenNummer($_SESSION['kennung'],
$_SESSION['passwort']);
}
if(
$art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']) == 0)
{
if(!isset(
$_REQUEST['neu']))
$art->inhalt($text[5]);#Anmeldeformular
else
$art->inhalt($text[6]);#Datenerfassungformular
}
elseif(isset(
$_REQUEST['wk']))
{
$art->inhalt($text[3]);
$art->auswahl($art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']));
$art->inhalt($text[2]);
}
elseif(isset(
$_REQUEST['order']))
{
$art->bestellen($art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']));
$art->inhalt($text[4]);

}
else
{
if(!empty(
$_REQUEST['id']))
{
$art->setKundenNummer($_REQUEST['kennung'], $_REQUEST['passwort']);
$art->waehlen($_REQUEST['id'], $_REQUEST['kunde']);

}
$art->inhalt($text[0]);
$art->anzeigen();
$art->inhalt($text[1]);
}
$art->fuss();
?>
Profil ansehen
Seite: 1 no reply
Powered by Pascal Landau © 2006 MyWebsolution.de
Designed by Pascal Landau © 2006 MyWebsolution.de
 
 
 
 
Home Email Impressum Disclaimer Statistik