next up previous contents index
Search Next: XML Up: Projekt: Einkaufskorb in Ruby Previous: Warenbestand einsehen   Contents   Index

Einkaufen

Beim "`Einkaufen"' werden Waren in den Einkaufskorb gelegt. Der eigentliche Einkauf geschieht beim Passieren der Kasse.

# zeige.rbx
require "cgi"; require "mysql"; require "cart"

def buchen(m, email, artikel)
  m.query("UPDATE lager SET bestand=bestand-1 " +
    "WHERE nummer='#{artikel}'")
  m.query("INSERT INTO cart " +
    "VALUES('#{email}', '#{artikel}')")
end

def einwageln(cgi)
  email = email(cgi)
  with_mysql_connection { |m|
    cgi.params['artikel'].each { |a| buchen(m, email, a) }}
end

def show_cart(cgi, email)
  with_mysql_connection { |m|
    res = m.query("select l.nummer, " +
      "l.nummer as nr, l.name, l.preis " +
      "from cart as c, lager as l " +
      "where c.artikelnummer=l.nummer " +
      "and c.email='#{email}';")
    table = [['Löschen', 'Art.-Nr.', 'Bez.', 'Preis']]
    cgi.form("get", "kaufe") {
      fill_table(cgi, table, "loesche", res)
  }}
end

cgi = CGI.new("html3")
cgi.out {
 cgi.html{
  cgi.head{ cgi.title{"Einkaufskorb"} } +
  cgi.body{
    if logged_in?(cgi)
      einwageln(cgi)
      cgi.h2 { "Einkaufswagen für " + email(cgi) } +
        show_cart(cgi, email(cgi))
    else
      "Nicht eingeloggt."
    end
}}}



(C) 2002 by dpunkt.de, Armin Roehrl, Stefan Schmiedl, Clemens Wyss 2002-01-20