Db auslesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Db auslesen

    Hallo,

    ich habe mir ein Perl-Skript geschrieben, um einzelne Kunden mit ihren Kundendaten aus einer Datenbank ausliest. Das funktioniert auch wunderbar, nur: wenn der name nachdem ich in der DB abfrage mehrmals auftritt gibts Käse.

    hier mal ein auszug aus dem Skript

    $dbh = DBI->connect("DBI:mysql:$database:$db_host",$db_user,$db_password)
    or print "Fehler bei der Datenbankverbindung aufgetreten.";


    $SQLString1 = "SELECT * FROM kunden WHERE kunde like 'web11'";
    $sth1 = $dbh->prepare($SQLString1)

    $sth1->execute


    while(@DB = $sth1->fetchrow())
    {

    @kunden_kunde = (@kunden_kunde, "$DB[0]");
    @kunden_uid = (@kunden_uid, "$DB[1]");
    @kunden_passwort = (@kunden_passwort, "$DB[2]");
    @kunden_anbieter = (@kunden_anbieter, "$DB[3]");

    wie muss ich das Skript verändern, damit auch mehrere einträge verarbeitet werden können?


    Danke

  • #2
    Dein while(... fetchrow()) holt jeweils einen Datensatz (eine "Zeile") aus der Datenbank. Die Zeile zerlegst du innerhalb der Schleife und speicherst den Wert jeder Spalte in einer eigenen Variablen. Soweit alles okay.

    Aber überleg dir mal, was passiert, wenn dein SELECT mehrere Zeilen zurückgibt! Du holst die erste Zeile, speicherst sie in den kunden_-Variablen, holst die nächste Zeile, speicherst sie ebenfalls in den kunden_-Variablen und überschreibst damit die Werte aus der ersten Zeile.

    Lösung: Entweder die komplettte Verarbeitung eines Datensatzen innerhalb der Schleife machen oder die Werte in einem Array speichern, das dann mit jeder ausgelesenen Zeile wächst.

    Kommentar

    Lädt...
    X