phpbar.de logo

Mailinglisten-Archive

Perl/mySQL - mein Script verschluckt immer/nur den ersten Datensatz eine
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Perl/mySQL - mein Script verschluckt immer/nur den ersten Datensatz eines Kunden.



Muss ich jetzt einen Dummy-Datensatz einbauen?

Hallo SQL-Freaks,

jetzt muss ich erstmal erklären, was mein schwerfällig konstruiertes Script
alles machen soll. Das Script greift auf eine Datenbank mit zwei Tabellen
zu. Die eine Tabelle enthält die Kundendaten, die andere Tabelle die
zugehörigen Angebote. Die Tabellen werden in der Abfrage mit
"anbieter.angebote_id = angebote.anbieter_id" miteinander verknüpft.

Das Script beinhaltet eine Login-Prozedur, die die eMail eines Kunden mit
dem Paßwort im Datensatz abgleicht. Fehlaktionen des Kunden werden
abgefangen.
Nach erfolgreichem Login werden verschiedene Dinge angezeigt. Einmal
erscheinen die persönlichen Daten des Kunden als Bestätigung (eine Zeile der
Ergebnismenge). Dann werden alle seine eingetragenen Datensätze aus der
Angebote-Tabelle (bis zu zehn Zeilen Ergebnismenge) aufgelistet. Zudem
werden nach der Auflistunge zwei Formulare angezeigt, ein Formularblock für
das Update der bereits eingetragenen Daten und ein Formularblock für das
Hinzufügen eines Datensatzes. Die Formulare rufen dann andere Scripts auf,
die die Datensätze dann bearbeiten. Das funtioniert auch alles, nur: der
erste Datensatz eines Kunden wird "verschluckt". Und wenn der Kunde noch
kein Angebot eingegeben hat, dann ist für diesen Kunden kein Login möglich.
Das gefällt mir nicht :-)

Nun, der kritische Punkt ist wohl, dass ich einmal eine einzige Zeile der
Ergebnismenge (Kundendaten) aus der ersten Tabelle anzeigen möchte und
gleichzeitig viele Zeilen der Ergebnismenge aus der zweiten Tabelle durch
eine einzige SQL-Abfrage herausfischen möchte.

Hier ein kleiner Auszug meines Scripts:

#### Datenbankanfrage absetzen und verarbeiten
my ($sth) = $dbh->prepare (qq{SELECT *  FROM angebote, anbieter WHERE email
= "$email" AND angebote.anbieter_id = angebote.anbieter_id});
$sth->execute();
####für eine Zeile der Ergebnismenge
my ($hash_ref) = $sth->fetchrow_hashref();
my ($kennung) = $hash_ref->{'kennung'};
usw.
.
#### weiter unten dann im Script für die Auflistung .
EOHTML

while ($hash_ref = $sth->fetchrow_hashref())


 my $immoart = $hash_ref->{'immoart'};
 my $baujahr = $hash_ref->{'baujahr'};
.
.
.

Kann mir jemand mit diesen Informationen schon einen Hinweis auf die
Fehlerquelle geben? Das Einfügen eines Dummy-Datensatzes wäre eine
Anfängerlösung, aber wie kann ich das eleganter und perliger lösen?

Danke für eure Hilfe im Voraus.

Gruß,

Thomas Barth...





---
*** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive