Schrift
[thread]10570[/thread]

MySQL und Perl (Seite 5)

Leser: 3


<< |< 1 2 3 4 5 6 7 8 >| >> 72 Einträge, 8 Seiten
H3llGhost
 2007-11-05 21:31
#101891 #101891
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Danke ...

Aber nun mal wieder eine Frage:
Ich habe ja die $result und da stehen ja die Ergebnisse von der MySQL-Query drin.
Nun würde ich das Ergebnis ein bisschen mal aufsplitten.
Sprich ich habe mehrere Zeilen mit Servern aber ich will von vorne nach hinten durcharbeiten.
Wie kann ich dann nun auf verschiedene Variablen aus dieser Tabelle zugreifen?
pq
 2007-11-05 21:53
#101892 #101892
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
H3llGhost+2007-11-05 20:31:24--
Ich habe ja die $result und da stehen ja die Ergebnisse von der MySQL-Query drin.
Nun würde ich das Ergebnis ein bisschen mal aufsplitten.
Sprich ich habe mehrere Zeilen mit Servern aber ich will von vorne nach hinten durcharbeiten.
Wie kann ich dann nun auf verschiedene Variablen aus dieser Tabelle zugreifen?

lies mal perldsc
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
H3llGhost
 2007-11-05 22:00
#101893 #101893
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Hmm ...
Jetzt verstehe ich garnichts mehr ... :(
Gibt es nicht wie bei PHP einen Befehl extract() oder so?
pq
 2007-11-05 22:25
#101894 #101894
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
H3llGhost+2007-11-05 21:00:33--
Hmm ...
Jetzt verstehe ich garnichts mehr ... :(
Gibt es nicht wie bei PHP einen Befehl extract() oder so?

zum glück nicht. das ist unsauber. wofür hat man eine saubere hash-struktur, nur um
den dann in die symboltabelle zu exportieren?
also: du hast einen hash of hashes, wie es aussieht.
Code (perl): (dl )
1
2
3
4
for my $key (sort keys %$hashref) {
    my $entry = $hashref->{$key};
    print "foo: $entry->{foo}\n";
}

ich ueberlasse is jetzt mal dir, das auf deine hashref anzupassen =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
H3llGhost
 2007-11-05 22:37
#101895 #101895
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Habe es nun so geschrieben:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
    my $query = "
SELECT
*
FROM
hlstats_Servers
";
my $result = &doQuery($query);
my $hash_ref = $result->fetchrow_hashref();

for my $key (sort keys %$hashref) {
my $entry = $hashref->{$key};
print "foo: $entry->{foo}\n";
}


Aber er gibt nichts aus ... :(
Was habe ich falsch gemacht?
pq
 2007-11-06 00:39
#101902 #101902
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
H3llGhost+2007-11-05 21:37:23--
Was habe ich falsch gemacht?

du hattest doch weiter oben im thread eine ganz andere datenstruktur!
weiss ich, welche datenstruktur du hast? wenn du nur *eine* zeile holst,
brauchst du natuerlich die schleife nicht.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
H3llGhost
 2007-11-06 21:40
#101916 #101916
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Du meinst wenn nur eine Datenzeile in der DB gespeichert ist oder wie?

Habe nun die Abfrage angepasst:

Code (perl): (dl )
1
2
3
4
5
6
7
8
    my $query = "
            SELECT
                    *
            FROM
                    hlstats_Servers
    ";
    my $result = &doQuery($query);
    my $hash_ref = $result->fetchrow_arrayref();


Und siehe da jetzt gibt er auch was mit folgendem Code aus:
Code (perl): (dl )
1
2
        use Data::Dumper;
        print Dumper $hash_ref;


Wie kann ich den Code jetzt so erweitern, dass er das mit allen Ergebnissen macht?
Dann muss ich doch folgendes "$hash_ref = $result->fetchrow_arrayref()" in eine while-Schleife packen oder?
renee
 2007-11-06 22:15
#101918 #101918
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Schau Dir mal http://wiki.perl-community.de/bin/view/Wissensbasi... (das "Skript komplett") an...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
H3llGhost
 2007-11-06 22:52
#101921 #101921
User since
2007-10-14
60 Artikel
BenutzerIn
[default_avatar]
Habe nun ein bisschen gebastelt und bin auf folgendes gekommen:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
    my $query = "
            SELECT
                    *
            FROM
                    hlstats_Servers
    ";
    my $result = &doQuery($query);
    my @result2;
   while(my @row = $result->fetchrow_array()){
      push(@result2,\@row);
   } 


Warum kann ich da nicht fetchrow_arrayref() benutzen?
Und auf die Sachen kann ich dann doch mit @result2{X} zugreifen oder?

Habe es nun geschafft das %g_config_server mit dem Dumper ausgeben zu lassen:

Code: (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
$VAR1 = '77.237.250.200:27015';
$VAR2 = {
'AddressPort' => '77.237.250.200:27015',
'MinPlayers' => '2',
'MasterServerData' => '7',
'PlayerEventsCommand' => 'ma_hlx_psay',
'BroadCastEventsCommandAnnounce' => 'ma_hlx_csay',
'Mod' => 'MANI',
'MinimumPlayersRank' => '0',
'AdminContact' => 'webmaster@battle55-stats.de',
'BroadCastEvents' => '1',
'AutoTeamBalance' => '0',
'SwitchAdmins' => '0',
'EnablePublicCommands' => '1',
'GameType' => '0',
'BroadCastPlayerActions' => '1',
'BroadCastEventsCommandSteamid' => '1',
'PlayerEvents' => '1',
'BroadCastEventsCommand' => 'ma_hlx_psay',
'SkillMode' => '0',
'AutoBanRetry' => '0',
'PlayerEventsCommandSteamid' => '1',
'TrackServerLoad' => '1',
'ShowStats' => '1',
'PlayerEventsCommandOSD' => 'ma_hlx_msay',
'TKPenalty' => '50',
'HLStatsURL' => 'http://test3.battle55-stats.de',
'SuicidePenalty' => '5',
'MasterServerInterval' => '200',
'IgnoreBots' => '1',
'DisplayResultsInBrowser' => '0'
};


Das % bedeutet doch Assoziatives Array oder?
Und wie kann ich dieses Nun selber erzeugen?
Ok das mit den Werten wüsste ich aber die anderen Sachen?

Da man doch auf das Array mit $g_config_servers{$s_addr} zugreift könnte man doch auch schreiben:

'77.237.250.200:27015' => array('AddressPort' => '77.237.250.200:27015', ... )

Oder?
pq
 2007-11-07 15:01
#101963 #101963
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
H3llGhost+2007-11-06 21:52:38--
Das % bedeutet doch Assoziatives Array oder?


pq+2007-11-05 20:09:58--
H3llGhost+2007-11-05 18:55:16--
Mir ist gerade was aufgefallen ...
Ich brauche ein assoziatives Array ...

in perl ist das ein hash.

liest du ueberhaupt alle antworten? (und auch bitte die verlinkten dokus!)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< |< 1 2 3 4 5 6 7 8 >| >> 72 Einträge, 8 Seiten



View all threads created 2007-10-14 17:05.