Thread Programm am ende wiederholen (14 answers)
Opened by SCORRPiO at 2014-02-17 17:01

SCORRPiO
 2014-02-18 16:14
#173632 #173632
User since
2014-02-18
13 Artikel
BenutzerIn

user image
Oh danke werde ich damit mal ausenander setzten.


Die Syntax fehler kammen duch kürzen zu stande... hier mal die ungekürtze version (war eh sinlos zu kürzen):
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#! /usr/bin/perl
use strict;
use feature qw(switch say);
use DBI;
use Term::ReadKey;
binmode(STDOUT, ":utf8");  #für umlaute ;)
my $db_user = 'user';
my $db_name = 'client';
my $db_pass = 'test1234';
my $table = 'rechner';

my $clear = "\033[2J  \033[0;0H";    #clear the screen  && #jump to 0,0

#~ print "Bitte den mySQL Benutzer Namen angeben: ";
#~ my $db_user = <STDIN>;
#~ chomp $db_user;
#~ print "Bitte den mySQL Benutzer Passwort angeben: ";
#~ ReadMode 'noecho';
#~ #my $db_pass = <STDIN>;
#~ my $db_pass = ReadLine 0;
#~ chomp $db_pass;
#~ ReadMode 'normal';
#~ print "\nDatenbank: ";
#~ my $db_name = <STDIN>;
#~ chomp $db_name;
#~ print "Tabelle: ";
#~ my $table = <STDIN>;
#~ chomp $table;

my $dbh = DBI -> connect("DBI:mysql:database=$db_name", $db_user, $db_pass);
 
while (1) 
{
        print $clear;
        print "\t\t\t Datanbank Verwaltung\n\n"; 
        print "Sie sind mit der Datenbank ''$db_name'' verbunden und die Tabelle. \nWas möchten Sie tun?";

        print "
                  1. Tabelle anzeigen  
                  2. Daten eintragen 
                  3. Daten ändern 
                  4. Daten löschen 
                  6. Neue Tabelle anlegen
                  7. Tabelle wechseln (test)
                  8. Datenbank wechseln (test)\n
                  9. Programm beenden.

        ";

        my $eingabe = <STDIN>;  
        chomp $eingabe;
        
        print "$clear Datenbank: $db_name \nTabelle:";
        ## 1  Tabelle anzeigen  
        given ($eingabe) {
                when(1)  {
                        print "Ihre eingabe: $eingabe";
                        my $query_test = $dbh->prepare(<<SLCT);
                        SELECT * FROM $table
SLCT

                        $query_test->execute() or die $query_test->err_str;
                        print "\n";
                        print " +---------------+--------------+\n";
                        print " | name          | ip           |\n";
                        print " +---------------+--------------+\n";

                        while (my ($col_1, $col_2,$col_3) = $query_test->fetchrow_array() ) {
                                print "\t| $col_1    \t| $col_2 |\n";
                                }
                        print "\t+---------------+--------------+\n";
                        my $pause = <STDIN>;                    # unschön aber macht was es soll ;D
#                       last;
                        }
                ##2    Daten Eintragen
                ##3    Daten ändern
                ##4        Daten löschen
                ##6    Neue Tabelle anlegen

                when(6)  {
                        #if ($eingabe == 6){
                        print "Neue Tabelle erstellen";
                        print "\n\n Wie soll Ihre neue Tabelle heißen: ";
                        my $new_table = <STDIN>;
                        chomp $new_table;
                        print "\nBitte bennen sie die einzelne Spalten nach folgendem Muster: 
                                Name VARCAR(20) <Spaltenname> <Wert>";
                        my @spalten;
                        my $query_test = $dbh->prepare(<<CRTE); 
                        CREATE TABLE $new_table ( @spalten)
CRTE

                        $query_test->execute() or die $query_test->err_str;
                        print "Ihre neue Tabelle lautet $new_table \n Tabelle verwenden? (ja/nein)";
                        my $choise = <STDIN>;
                        if ($choise == 'ja'){
                        $table = $new_table;
                        };
                        print "\n";
                        }
                ##7    Tabelle wechseln
                ##8    Datenbank wechseln
##9 Beenden
                when(9)  {
                        exit(2);
                                $dbh ->disconnect();
                        }
                default  { warn "Wert $_ ausserhalb des Bereichs 0 bis 11" }
        }       #/give
                        #/while
}




PS: Ist nur ein Übungsprogramm und hat keinen genauen Hintergrund
Last edited: 2014-02-18 16:19:47 +0100 (CET)
Linux User || Perl 5.14

View full thread Programm am ende wiederholen