Antworten auf deine Fragen:
Neues Thema erstellen

puplic function set KundenNummer

karina06

Nicht mehr ganz neu hier

Hallo un guten Morgen,
Ich stehe auf dem Schlauch, bisher habe ich alles gut bewältigt. Nun soll ich in der Klasse"webshop" eine Methode einbauen diestellvertretend die Methode "setKundenNummer" der "kunden"-Objektes aufruft. Sie darf ebenfalls "setKundenNummer" heißen und kann/soll wie folgt aussehen.

PHP:
puplic function setKundenNummer($kennung, $passwort)
{
return $this->kunde->setKundennummer($kennung, $passwort);
}

wie und wo muß ich das in meinen code einfügen?
Für jeden Tip bin ich wirklich sehr Dankbar!!!
Hier mein code:
PHP:
<?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 auswahl($kunde) # zeigt ausgewählte Artikel
  {
   $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</>\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>Artikel</th><th>Preis</th>\n </tr>\n";
    foreach($this->artikelArray as $key => $value)
    {
      print "  <tr>\n";
      foreach($value as $subKey => $subVal)
      {
        if ($subKey == "name")
        {
          print "   <td>".$subVal."</td>";
        }
        else
        {
          print "<td>".$subVal." Euro</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); # Setzt Rand
    $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');
    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 Online-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();
    
}
  
}
}
}
?>

So ist es doch viel besser zu lesen ;)
mfG, cebito
 
Zuletzt bearbeitet von einem Moderator:

sumpfbarbe

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Hallo,

benutze nächstesmal bitte die Codewerkzeuge zum Einfügen von Code.(PHP-Zeichen oben rechts)

Sieht nach ner Schulaufgabe aus:)

Müßte da nicht erst noch die construct function rein?
Dann function anzeigen, func auswahl, func set artikel,
func pdf, func setKDNR, func setKDdaten,func getKDNR,

Grüße
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Und wo/wie setze ich die construct function ein?
Ja es sind übungaufgaben. komme nicht mehr weiter, hilfe
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Hallo,

die construct muß immer oben stehen in dem Fall also nach

private $pdf;
private $kunde;

public function __construct()
{
parent::__construct();
usw.

Ich würde mir an Deiner Stelle das Ganze nochmal von Anfang an vornehmen denn es wird nicht leichter.
Wenn Du hier schon Probleme hast wirst Du noch mehr Schwierigkeiten mit dem Rest bekommen.
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Das hatte ich schon versucht. Bekomme dann folgende Meldung:

Warning: Missing argument 1 for webshop::__construct(), called in C:\xampp\htdocs\webshop.php on line 5 and defined in C:\xampp\htdocs\class_webshop.php on line 10

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\class_webshop.php:10) in C:\xampp\htdocs\class_sitzungsSeite.php on line 10
Array ( [1001] => Array ( [name] => Herr der Ringe [preis] => 39.90 [menge] => 5 ) [2002] => Array ( [name] => Der kleine Hobbit [preis] => 19.90 [menge] => 5 ) [3003] => Array ( [name] => Grimms Maerchen [preis] => 25.90 [menge] => 5 ) [4004] => Array ( [name] => Eric von Melnibonee [preis] => 29.90 [menge] => 5 ) )
Warning: Missing argument 1 for kunde::__construct(), called in C:\xampp\htdocs\class_webshop.php on line 14 and defined in C:\xampp\htdocs\class_kunde.php on line 9
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u12345678.ws_kunde' doesn't exist
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Hallo,

das bestätigt was ich Dir vorher schrieb.
In Deinem Script sind wohl jede Menge Probleme.
Es gibt ja wohl nicht mal die vollständige Tabelle welche Du benötigst.Die construct hat in der webshop.php nix zu suchen.
Achtung Unterschied class_webshop und webshop.php
Am Besten Du gehst zurück an den Punkt an dem Dein Script funktioniert hat.
Dann machst Du ab da weiter.
Du solltest auch die entsprechenden Übungen machen.
Auch ich hab vor einiger Zeit mit PHP angefangen und ein (zumindest sehr ähnliches )Script bearbeitet.

grüße
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Habe schon 3mal an dem Punkt wieder angefangen gehe ich weiter wie vorgegeben bekomme ich immer wieder die gleichen fehlermeldungen
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Was soll ich sagen?
Wenn Du immer die gleichen Fehlermeldungen bekommst solltest Du sie eine nach der anderen abarbeiten.
Bei:
PHP:
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'u12345678.ws_kunde' doesn't exist
wird klar gesagt das ws_kunde nicht existiert.
Wenn z.B. die Fehlermeldung schon 3x kam warum hast Du die Tabelle nicht schon lange vervollständigt.?!?
poste doch mal das letzte script welches funktionierte(bitte vorher nochmal testen!!!) und was Du dann gemacht hast und welche Fehlermeldung daraufhin kam
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Danke, habe auch gerade festgestellt das im Lernheft ein Fehler war. Ich sollte eine Tabelle KUNDEN anlegen in dem code steht aber immer KUNDE. Habe die tabelle umbenannt.
Nun habe ich nur nich einen Fehler.
Diesen hier:


Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\class_webshop.php on line 42
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

PHP:
Hier eine Abbildung von meinem Code
PHP:
<?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 auswahl($kunde) # zeigt ausgewählte Artikel
  {
   $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</>\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>Artikel</th><th>Preis</th>\n </tr>\n";
    foreach($this->artikelArray as $key => $value)
    {
      print "  <tr>\n";
      foreach($value as $subKey => $subVal)
      {
        if ($subKey == "name")
          print "  <td>".$subVal."</td>";
   elseif ($subKey == "preis")
    print "<td align=\"right\">".$subVal." Euro
   </td>";
  elseif($subKey == "menge")
   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); # Setzt Rand
    $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');
    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 Online-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 getKundenNummer($kennung, $passwort)
{
 return $this->kunde->setKundenNummer($kennung, $passwort);
}
 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();
  }
}
 }
?>

Bekomme kein Bild hocheladen, Sorry
 

saila

Moderatorle

AW: puplic function set KundenNummer

Hi,

um ein Bild auf einen Server zu uploaden, muss zum einen der form-tag das entsprechende Attribut enctype="" enthalten. Die nächste Frage danach wäre, wie wird oder besser über welche Methode wird das Bild über PHP entgegengenommen?

Nun etwas grundlegendes. Wenn du schon auf OOP-Basis arbeiten möchtest oder eine Hausaufgabe gestellt ist, dann bitte im Vorfeld, sich mit der Thematik beschäftigen oder wenn letzteres zutrifft, den Lehrer einmal darüber informieren, dass er zumindest Grundlagen vorab vermitteln sollte. Warum? Weil OOP letztlich auch etwas mit Sicherheit zu tun hat und hier wiederum mit den sogenannten Sichtbarkeiten. Das mag jetzt vielleicht nicht interessant sein, doch wenn hierzu keine Grundlagen vorhanden sind, wird auch später der Workflow recht bescheiden aussehen und auch entsprechende Sicherheitslücken enthalten.

Und wenn schon __construct() fehlt, dann fehlt auch __destruct() :)
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

as sagt mir diese Fehler Meldung in meinem Fall aus und wie behebe ich den Fehler.
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\class_webshop.php on line 42
Würde mich sehr freuen wenn mir jemand helfen kann
 

cebito

undefined

AW: puplic function set KundenNummer

as sagt mir diese Fehler Meldung in meinem Fall aus und wie behebe ich den Fehler.
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\class_webshop.php on line 42
Würde mich sehr freuen wenn mir jemand helfen kann

Wie viele davon willst du noch posten? Ohne die jeweilige (Code)Zeile und vor allem auch die davor sind die Fehlermeldungen ziemlich sinnlos!
 

sumpfbarbe

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Warning: in C:\xampp\htdocs\class_webshop.php on line 10

Warning: in C:\xampp\htdocs\class_sitzungsSeite.php on line 10

Warning: in C:\xampp\htdocs\class_kunde.php on line 9

Hallo,
bei OOP muß alles zusammenpassen.
Bei Dir kommen die Fehlermeldungen von mehreren Seiten.
Ich würde Dir dringend empfehlen nochmal ganz von vorne zu beginnen
und dann neuen code jeweils sofort zu überprüfen.
Wenn du PHP in einem Kurs lernst würde ich den Lehrer bitten nochmals die Grundlagen zu erklären.
Ansonsten kann ich cebito nur zustimmen.

Grüße
 

karina06

Nicht mehr ganz neu hier

AW: puplic function set KundenNummer

Diesen Fehler konnte ich entfernen. FREU.
Nun steht nur noch an ein Anmeldeformular und ein Registrirungformulat für den Shop zu erstellen. Das sollte ich ja schaffen, wenn doch noch Fragen auftauchen werde ich euch um Hilfe bitten. Ihr seid ein super Forum.
Gruß
Karina
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.636
Beiträge
1.538.496
Mitglieder
67.559
Neuestes Mitglied
hanuta
Oben