Antworten auf deine Fragen:
Neues Thema erstellen

SQL/PHP als Tabelle ausgeben

karina06

Nicht mehr ganz neu hier

Hallo und einen netten Sonntag,
Kann mir bitte jemand helfen? Habe hier meinen code und weiß nicht was ich falsch mache. Ich möchte gerne dass das ganze als Tabelle ausgegeben wird. Was kann ich da tun?

Hier ist der 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 cellpadding=\"5\">\n";
    print "  </tr>\n";  
 #holender nummerischen Indizis<th>
    $tmp = array_keys($this->artikelArray);
 #Durchsuchen nach den assoziativen Schlüsseln
 foreach($this->artikelArray[$tmp[0]] as $key => $value)
  {
   #Ersten Buchstaben groß setzen
   print "<th>".ucwords($key)."</th>";
  }
  print "\n</tr>\n";
  #Alle Datenfelder ausgeben
  foreach($this->artikelArray as $key => $value)
  {
   print "<tr style=\"text-align: center;\">n";
   foreach($value as $subKey => $subVal)
   {
    if ($subKey == "preis") #prüfen, um ,,Euro"-Text anzuhängen
    print "<td algin=\"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";
  }
    
  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',md5 ($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)
{
 return $this->kunde->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)";
 if(empty($data['name']))
 return false;
    $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', md5($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();
  }
}
 }
 }
?>

Gruß Karina
 

AW: SQL/PHP als Tabelle ausgeben

Hi,

hatten wir das Thema nicht kürzlich?

Als erstes setze nach $result = $this->dbh->query($sql);"
Code:
if(mysql_num_rows($result)) {
 echo 'Ergebnis ist vorhanden';
} else {
 echo 'da ist nichts';
}
Danach mache folgendes:
Code:
echo '<pre>'; print_r($this->dbh); echo '</pre>';
Über die letzte Ausgabe kannst du erkennen, ob überhaupt eine Klasse initialisiert wurde. Es werden also alle Methode der Klasse ausgegeben. Wenn da keine Methode enthalten oder ausgegeben wird, ist die Klasse nicht korrekt initialisiert.

Danach sehen wir weiter.
 
AW: SQL/PHP als Tabelle ausgeben

Ich sehe alle Artikel, Preise und Menge aber nicht als Tabelle. es wird so ausgegeben:
Wie mache ich es nun das es in einer Tabelle steht?
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 ) [5005] => Array ( [name] => Test [preis] => 23.90 [menge] => 5 ) ) 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 ) [5005] => Array ( [name] => Test [preis] => 23.90 [menge] => 5 ) )
 
AW: SQL/PHP als Tabelle ausgeben

PHP:
<?php
$table = '<table>';
while($x = $result->fetchAll (PDO::FETCH_ASSOC)) {
    $table .= '<tr><td>'. $x['name'] .'</td><td>'. $x['menge'] .'<td>'. $x['preis'] .'</td></tr>'
}
$table .= '</table>';

?>

Wäre ein Lösungsansatz als Anfang ;)
 
AW: SQL/PHP als Tabelle ausgeben

Guten Morgen,

habe deine Befehle eingegeben und erhalte diese Meldung:

Warning: mysql_num_rows() expects parameter 1 to be resource, object given in C:\xampp\htdocs\class_artikel.php on line 29
da ist nichts
PDO Object()Array

Hänge nun noch meine clas_artikel php mit an. kannst du mir so weiterhelfen?
Gruß
Karina
PHP:
<?php
require_once ("class_sitzungsSeite.php");
class artikel extends sitzungsSeite
{
  private $artikelArray = array();
  private $DB = array('database' => 'u12345678',
                      'user'     => 'abc',
                      'password' => 'geheim');
  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_name, a_preis
                  FROM ws_artikel
                 WHERE a_menge > 0";
        $result = $this->dbh->query($sql);
  if(mysql_num_rows($result)) {
 echo 'Ergebnis ist vorhanden';
} else {
 echo 'da ist nichts';
}echo '<pre>'; print_r($this->dbh); echo '</pre>';
        $tmp = $result->fetchAll(PDO::FETCH_ASSOC);
        foreach ($tmp as $key => $value)
        {
          foreach($value as $ky => $val)
          {
            $name = split("_", $ky);
            if ($ky != 'a_artikelnr')
              $this->artikelArray[$value['a_artikelnr']][$name[1]] = $val;
          }
        }
print_r($this->artikelArray);  ### zum Testen!
      }
      catch(PDOException $e)
      {
        echo $e->getMessage();
      }
    }
  }
 
 public function anzeigen()
 {
  print "<table>\n";
  print "</tr>n <th>Artikel</th><th>Preis</th><th>
    Anzahl</th>";
  print "\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";
 }
  
  public function waehlen($artikelnummer, $kunde)
  {
    if(!empty ($artikelnummer) && !empty($kunde))
 {
  try
  {
   $sql = "UPDATE ws_warenkorb
    SET w_menge = w_menge + 1
     WHERE w_artikelnummer = :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_artilelnr, 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))  # 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', $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->execute();
if ($result1->rowCount() == 1)
{
$sql2 = "DELETE FROM ws_warenkorb 
                           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;
}
}
?>
 
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

Keine Mitglieder online.

Statistik des Forums

Themen
119.003
Beiträge
1.540.331
Mitglieder
23.164
Neuestes Mitglied
TropicHost
Oben