Mailinglisten-Archive |
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
php::bar PHP Wiki - Listenarchive