PERL Datenbank PROBELM
Claudia Schroder
- datenbank
0 Stefan Falz0 Claudia
0 Peter Squnetz
Hallo !
Ich habe ein Problem mit meiner Perl-Datenbank-Abfrage.
Mittels eines Formulars sollen Daten aus einer Datenbank gelöscht werden. Der Benutzer hat die Möglichkeit mittels checkBoxen
die entsprechenden Daten auszuwählen (hier "KundenNummern". Diese werden mittels Formular übermittelt und sollen dann in SQL +Perl
verarbeitet werden. Das Problem ist, daß immer nur die erste
Kundenummer gelöscht wird ! Hab Ihr eine Idee was falsch sein könnten ?
$KundenNummern = "";
$KundenNummern = $fdat{KundenNummern};
@KundenNummer = split(/\t/, $KundenNummern);
$SQL = "DELETE FROM kundensg";
$Kunde = shift(@KundenNummer);
$SQL .= " WHERE kundennummer\_id = \'$Kunde\'";
while( $Kunde = shift(@KundeNummer) ) {
$SQL .= " OR kundennummer_id = '$Kunde'";
}
-]
Danke in Vorraus
Claudia
Hallo Claudia,
[...]
verarbeitet werden. Das Problem ist, daß immer nur die erste
Kundenummer gelöscht wird ! Hab Ihr eine Idee was falsch sein könnten ?
»» $KundenNummern = "";
»» $KundenNummern = $fdat{KundenNummern};
»» @KundenNummer = split(/\t/, $KundenNummern);
»» $SQL = "DELETE FROM kundensg";
»» $Kunde = shift(@KundenNummer);
»» $SQL .= " WHERE kundennummer_id = '$Kunde'";
»» while( $Kunde = shift(@KundeNummer) ) {
$SQL .= " OR kundennummer_id = '$Kunde'";
»» }
»» -]
[...]
Ich habe zwar von Perl keine Ahnung, aber evtl. hilft
Dir es weiter, dass Du in der Zeile:
while( $Kunde = shift(@KundeNummer) ) {
KundeNummer und nicht KundenNummer geschrieben hast.
Du kannst Das SQL-Statement aber auch verkürzen, indem Du
anstatt einer OR-Verknüpfung die KundenNummern mit IN
verknüpfst.
SQL-Statement sieht in etwa so aus:
DELETE FROM kundensg WHERE kundennummer_id IN (1,2,3,4,5,6,...)
einfach die Kundennummern mit einem Komma getrennt hintereinander
schreiben.
Tschau, Stefan
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
DANKE !
Ich habe ein Problem mit meiner Perl-Datenbank-Abfrage.
Mittels eines Formulars sollen Daten aus einer Datenbank gelöscht werden. Der Benutzer hat die Möglichkeit mittels checkBoxen
die entsprechenden Daten auszuwählen (hier "KundenNummern". Diese werden mittels Formular übermittelt und sollen dann in SQL +Perl
verarbeitet werden. Das Problem ist, daß immer nur die erste
Kundenummer gelöscht wird ! Hab Ihr eine Idee was falsch sein könnten ?
»» @KundenNummer = split(/\t/, $KundenNummern);
»» while( $Kunde = shift(@KundeNummer) ) {
^^
Hier fehlt wohl ein n, deshalb den -w switch benutzen und
use strict;
Peter