php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2012, 13:52  
Neuer Benutzer
 
Registriert seit: 07.10.2010
Beiträge: 18
PHP-Kenntnisse:
Anfänger
Sauerkrautwurst befindet sich auf einem aufstrebenden Ast
Standard Feldeingabe mit Wert aus DB vergleichen - Anschl. Aktion durchführen

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

Geändert von Sauerkrautwurst (04.01.2012 um 14:01 Uhr). Grund: Fehler im Quelltext ausgebessert...
Sauerkrautwurst ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 05.01.2012, 21:26  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Deiner Funktion fehlt auf jeden Fall schonmal die ArtikelNr als Parameter (error_reporting einschalten!), zudem sieht sie unfertig aus. Und du planst einen Parameter $DBCon für die Datenbankverbindung und überschreibst ihn aber gleich wieder mit deinem Versuch, eine Verbindung aufzumachen.

Das Formular ist noch einleuchtend, aber aus dem:
Zitat:
PHP-Code:
        ob_start();
        echo 
$_SESSION['User'];
        
$user ob_get_contents();
        
ob_end_clean(); 
werd ich nicht mehr schlau, das ist die seltsamte Methode um sich eine Variable umzukopieren, die mir seit langem untergekommen ist. $user = $_SESSION['User']; hätte gereicht, wobei $user im weiteren Verlauf gar nicht nicht mehr verwendet wird

Aufgerufen wird die Funktion hinter der ODBCVerbindung, weil die brauchst du um die Funktion aufzurufen, aber noch bevor du mit der Erfassung weitermachst. Überprüf das Ergebnis des Funktionsaufrufs und erfasse erst, wenn es zufriedenstellend ist.
echos in Funktionen zerstören dir im übrigen die Möglichkeiten, mit header() zu arbeiten, wie du es rege tust. Arbeite da lieber mit Rückgabewerten oder Referenzen, um Statusinfos zurückzugeben.

Zu guter letzt ist der Code anfällig gegen SQL Injections.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rechenoperation in sql-statement mit einem Wert vergleichen PuMa Datenbanken 4 11.05.2011 08:45
datenbank felder vergleichen neuen wert anzeigen hups Datenbanken 5 05.02.2011 17:55
[Erledigt] php tabelle - probleme (spaltennamen) dior PHP Tipps 2010 5 11.11.2010 11:59
MySQL Felder vergleichen und Wert ausgeben Nike77 Datenbanken 22 19.10.2010 14:43
[Erledigt] Daten aus Datenbank mit festem Wert vergleichen mahaju PHP Tipps 2010 12 24.06.2010 11:32
[Erledigt] Arrays mit Datum vergleichen und ensprechend Wert einfügen BlackPanther PHP Tipps 2010 9 05.03.2010 17:27
Bei bestimmten Tabellen Wert neues Fenster / Aktion ausführen Sound abspielen Beatzler PHP Tipps 2009 5 19.07.2009 01:08
XML, daten vergleichen, größeren wert anzeigen Creeping PHP Tipps 2009 0 18.06.2009 15:18
[Erledigt] Ein wert mit werten aus einer anderen tabelle vergleichen ketchup PHP Tipps 2009 14 27.03.2009 14:40
Wert aus Datenbank vergleichen Spiff Datenbanken 8 18.05.2006 16:29
BD-Abfrage: Aktion, wenn ein Wert öfter als 3 mal gesetzt? tinchen PHP Tipps 2006 10 11.03.2006 01:29
Datum aus DB mit gegebenem Wert vergleichen Ypsillon Datenbanken 2 20.02.2005 08:45
Möchte Variable die Wert enthält mit Wort in DB vergleichen PHP Tipps 2004 17 21.08.2004 22:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php wert mit db vergleichen, input mit datenbank vergleichen und gleich anzeigen, sql wert mit eingabe vergleichen, ein wert mit werten in datenbaustein vergleichen, php eingabe mit wert vergleichen, php nach einscannen aktion ausführen, datenbank wert mit input wert vergleichen, php wert mit wert in db vergleichen, mysql datenbank alten wert mit neuem wert vergleichen, php $_get vergleichen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:51 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum