Datenbank mit SQL abfragen und mit Perl ausgeben + leere datensätze abfangen
Torsten
- datenbank
Hallo
anstatt dem tollen code von cheatah, kannst du auch folgenden verwenden:
window.close();
Wenn ich den Frager richtig verstanden habe will er
das Werbefenster des Providers/Hosters unterdrücken.
Wen dem so ist, wird er keinen Zugriff auf den
Quelltext des entsprechenden Fensters haben.
Tschüß, Auge
wie kriege ich das nun hin, dass er mir einen text ausgibt, wo drin steht, keine Filiale in Ihrer nähe.
ich würde das am ende anfügen:
if (!$stack_of_results)
{
echo "<tr><td>nix gefunden</td></tr>";
}
ist natürlich eine billige variante. aber hey, wer will schon teure sachen, wenn's auch billige mit gleichem umfang gibt.
grüssle
bjoern
Danke Björn, DU bist mein HELD. ;o)
Hallo,
Zuerst ein paar Anregungen:
Zeile 3:
$^O liefert den OS-Name (mehr oder weniger, für Plattform-Abfragen ist das meist aber genug). Außerdem brauchst Du $os nirgendwo.
Zeile 8 - 27:
Warum einfach, wenns kompliziert auch geht?
In Zeile 32 bindest Du CGI.pm ein, damit kannst du eigentlich die CGI-Parameter viel einfacher einlesen (Funktion param). Und dann hast Du alles noch in %FORM zusammengeklaubt, und in den Zeilen 24-27 werden nochmlas extra Skalare eingeführt. Ziemlich umständlich.
BTW.: Variablen in GROSSBUCHSTABEN machen es nicht unbedingt einfacher, Deinen Code zu lesen.
Zeile 37 - 62:
Auch nicht gerade übersichtlich, wie Du den Connect generierst.
<vorschlag>
my($dnsstring,$sql_string);
if ($cgi->param('dbank') eq "stamm")
{
$dnsstring="stamm";
$sql_string = "SELECT * FROM Stellenplan";
}
else
{
$dnsstring="DSN=d_baan;UID=read;PWD=read;";
$sql_string = "SELECT BEZ1, BEZ2 FROM tiitm001101 WHERE artikel LIKE '001%'";
}
$db = new Win32::ODBC($dnsstring))
or ExitWithError("Fehler beim Verbinden mit $dnsstring\nFehler: ". Win32::ODBC::Error() ."\n");
</vorschlag>
('ExitWithError' wäre eine neue Funktion, die noch zu implementieren ist.)
So jetzt geb' ich auf, was dann noch kommt, ist ziemlich verwirrend :-(, warum Du so viele Connects Du machst, ist mir einfach schleierhaft.
So nun zu Deiner eigentlichen Frage.
Gib' den Weiterbuttun einfach nur Dann aus wenn Fetchrow nach dem letzten angezeigten Datensatz noch entwas zurückliefert:
<vorschlag>
while ($db->FetchRow() and $rows < $max_rows)
{
#Ausgabe des Datensatzes
}
print "<input type="submit" name="submit" value="weiter">" if $db->FetchRow();
</vorschlag>
Aber über die Effizenz und die Struktur Deines Scripts solltest Du Dir schon noch Gedanken machen.
Du machst z.B:
$db = new Win32::ODBC("DSN=d_baan;UID=read;PWD=read;");
if( ! ($db = new Win32::ODBC("DSN=d_baan;UID=read;PWD=read;")))
ISt Doch eigentlich doppelt gemoppelt. zweimal hintereinander den gleichen Connect. Wozu? 'new Win32::ODBC' habe ich 12 mal gefunden. Einmal reicht doch allemal.
Grüße
Klaus
Hallo,
Zuerst ein paar Anregungen:
......
Grüße
Klaus
hallo,
ich hab das script aus mehreren zusammengestrickt,und überall noch was eingefügt,
ich geb zu es ist ncht ganz überschtilch und vieles is überflüssig, aber es funktoniert
so!
torsten