ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
319
319
EMPFEHLEN
-
29.07.11 15:22 #1
- Registriert seit
- Jul 2011
- Beiträge
- 1
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_webshopPHP-Code: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-Code: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();
}
}
-
Ein Tipp? Jepp.
Kopier mal die Fehlermeldungen hierher. Denn Fehlermeldungen sagen normalerweise wo der Fehler liegt. Dann müssen wir nicht alles Zeile für Zeilde von Hand durchgehen.---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
Ähnliche Themen
-
Array mit Datenbankabfrage füllen und in einer Schleife ausgeben
Von Joe im Forum PHPAntworten: 4Letzter Beitrag: 03.06.10, 21:14 -
Ausgabetext vor Datenbankabfrage ausgeben
Von cm-sebastian im Forum PHPAntworten: 11Letzter Beitrag: 17.09.06, 14:03 -
Daten aus MySQL-Datenbankabfrage tabellarisch ausgeben
Von nw90 im Forum PHPAntworten: 5Letzter Beitrag: 21.04.06, 22:06 -
datenbankabfrage-> ergebnis in neuem fenster ausgeben
Von redback79 im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 12.06.02, 17:41 -
artikel schreiben und in einem interface ausgeben :D
Von Slimie im Forum PHPAntworten: 2Letzter Beitrag: 23.04.02, 15:22





Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren