Servus zusammen!
Ich habe ein kleines Script, mit dem ich Dinge scannen kann (Art-Nr., Menge, Lagerplatz etc.) um sie danach per SQL in eine DB (DB2) einzutragen. Klappt auch wunderbar.
Jetzt möchte ich das ganze noch etwas erweitern. Und zwar möchte ich den Wert "Artikelnummer" zuerst auf Existenz in der DB
prüfen, bevor der Benutzer weitermachen kann.
Dazu habe ich mir eine Funktion erstellt, die wie folgt aussieht:
PHP-Code:
function ODBCArtikelpruefung($DBCon, $Username, $Password){
$DBCon=odbc_connect('xxx','yyy', 'zzz') or die("<b>Error!</b> Error Code: ".odbc_errormsg());
$SQLStatement = "SELECT * FROM caspdtat.gidpf01s WHERE itnr1s = '".$ArtikelNr."'";
if(odbc_num_rows($SQLStatement)==1) echo "Artikelnummer vorhanden, Scannen Sie den Stellplatz ab.";
else echo "Artikelnummer nicht vorhanden. Bitte prüfen Sie Ihre Eingabe!";}
Leider ist mir nicht ganz klar, wo bzw. wie ich die Funktion einbauen muss, damit sie mit einbezogen wird.
Hier noch die artikel_form.php
PHP-Code:
<?php
session_start();
if ($_SESSION['VALID'] != TRUE) {
header("Location: ./index.php?Nachricht=Sitzung ist abgelaufen");
}
?>
<html>
<head>
<title>
Anmeldung
</title>
</head>
<body>
<form action="./Artikel_senden.php" method="POST">
<?php
if (!empty($_GET['Nachricht'])) {
echo '<p><font color="red"><b>'.htmlspecialchars($_GET['Nachricht']).'</b></font></p>';
}
if (!empty($_GET['NachrichtOK'])) {
echo '<p><font color="green"><b>'.htmlspecialchars($_GET['NachrichtOK']).'</b></font></p>';
}
?>
<p>
Bitte die Buchungsart wählen:
</p>
<select size="1" name="bewegungsschluessel">
<option value="001">Inventur</option><?php if (!empty($_GET['inventur'])) {echo $_GET['inventur']; }?>" /></p>
<option value="002">Zu-/Abgang</option><?php if (!empty($_GET['bestandskorrektur'])) {echo $_GET['bestandskorrektur']; }?>" /></p>
<option value="003">Bestandskorrektur</option><?php if (!empty($_GET['zu_abgang'])) {echo $_GET['zu_abgang']; }?>" /></p>
<option value="004">Umlagerung</option><?php if (!empty($_GET['umlagerung'])) {echo $_GET['umlagerung']; }?>" /></p>
</select>
</select>
<p>
Bitte scannen Sie den Stellplatz ab:
</p>
<input type="text" name="stellplatz" value="<?php if (!empty($_GET['stellplatz'])) {echo $_GET['stellplatz']; }?>" /></p>
<p>Bitte scannen Sie den Artikel ab:</p>
<input type="text" name="ware" value="<?php if (!empty($_GET['ware'])) { echo $_GET['ware']; }?>" /></p>
<p>Bitte geben Sie die gewuenschte Menge an:</p>
<input type="text" name="menge" value="<?php if (!empty($_GET['menge'])) { echo $_GET['menge']; } ?>" />
<br /><input type="submit" value="absenden" />
</form>
</body>
</html>
sowie die artikel_senden.php
PHP-Code:
<?php
require './DB.php';
session_start();
function StartsWith($Haystack, $Needle){
// Recommended version, using strpos
return strpos($Haystack, $Needle) === 0;
}
if ($_SESSION['VALID'] == TRUE) {
$DBcon = ODBCVerbindung();
if (empty($_POST['ware']) or $_POST['ware'] == "" or empty($_POST['menge']) or $_POST['menge'] == "" or empty($_POST['stellplatz']) or $_POST['stellplatz'] == "") {
header("Location: ./Artikel_Form.php?ware=".$_POST['ware']."&menge=".$_POST['menge']."&stellplatz=".$_POST['stellplatz']."&Nachricht=Sie haben keine(n) Stellplatz, Artikelnummer oder Menge eingegeben !");
}
$Bewegungsschluessel = $_POST['bewegungsschluessel'];
$ArtNr = $_POST['ware'];
$Startstelle = 3;
$ArtikelNr = substr($ArtNr, $Startstelle);
$ArtikelMenge = $_POST['menge'];
$Stlplz = $_POST['stellplatz'];
$Stellplatz = substr($Stlplz, $Startstelle);
$Werk = 01;
$Geschbereich = $Werk;
$Buchungskreis = 04;
$Datum = date("Y-m-d");
$Zeit = date("His");
ob_start();
echo $_SESSION['User'];
$user = ob_get_contents();
ob_end_clean();
if (!StartsWith($ArtikelMenge, "-")) {
$ArtikelMenge = "+".$ArtikelMenge;
}
$SQLStatement = "INSERT INTO xxx (itnr32, acqt32, lgnt32, fscd32, crdt32, tsuser, time32, scpb32, cmpn32, trke32) VALUES (".$ArtikelNr.",".$ArtikelMenge.",".$Buchungskreis.",'".$Stellplatz."','".$Datum."','".$user."','".$Zeit."',".$Geschbereich.",".$Werk.",".$Bewegungsschluessel.")";
if (ODBCInsert($DBCon, $SQLStatement) == TRUE) {
header("Location: ./Artikel_Form.php?NachrichtOK=erfasst!");
}else{
header("Location: ./Artikel_Form.php?ware=".$_POST['ware']."&menge=".$_POST['menge']."&stellplatz=".$_POST['stellplatz']."&Nachricht=Fehler beim Verarbeiten des Datensatzes, bitte veruschen Sie es erneut!");
}
}else{
header("Location: ./index.php");
}
?>
Irgendetwas grundlegendes habe ich nicht vestanden. Danke für jede Hilfe.
Beste Grüße