Was ist hier falsch?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Was ist hier falsch?

    Hallo,
    es waere sehr nett, wenn sie mal das Skript ansehen könnten. Ich weiss nicht, wo der Fehler steckt.

    Die erste Tabelle [COLOR=darkblue]''product_sales''[/COLOR]

    __________________________________________________________
    | verkauf_id | product_sku | kaeufer | datum | invoice_no | quantity |
    ---------------------------------------------------------------------

    Die zweite Tabelle [COLOR=darkblue]''products''[/COLOR]

    ___________________________________________________________
    | products_id | products_model | products_quantity | products_preis |
    ----------------------------------------------------------------------

    mit dem folgenden Skript möchte ich in der ersten Tabelle die ganze Inhalt als eine neue Zeile hinzufügen und in der zweiten Tabelle sollte nur die Spallte [COLOR=red]''products_quantity''[/COLOR] mit der Anzahl(quantity) in der Formular summiert werden. Ich hoffe Sie verstehen, was ich meine.


    PHP-Code:
    <html> 
    <head> 
    <title></title> 
    </body> 
    <form name="LagerBestand" action="<?php $_SERVER["PHP_SELF"?>" method="post"> 
    <?php
    $host 
    "localhost"// Datenbanlhost 
    $user "haloki"// Datenbank Username 
    $pass ""// Datenbank Userpasswort 
    $datenb "zencart"// Datenbankname 
    $tabname "product_sales"// Name der Datenbanktabelle 
    $tabname2 "products"// Name der Datenbanktabelle die upgedatet werden soll 
    $tabname2_spalte "products_quantity"// Spalt die in der Tabelle geupdatet werden soll 
    //strlen di eski hali
    if(isset($_POST['verkauf_id']) > && isset($_POST['product_sku']) > && isset($_POST['kaeufer']) > && isset($_POST['datum']) > && isset($_POST['invoice_no']) > && isset($_POST['quantity']) > 0){ 
    $server = @mysql_connect($host,$user,$pass); 
    $db mysql_select_db($datenb); 
    $sql mysql_query("INSERT INTO $tabname VALUES('".$_POST['verkauf_id']."','".$_POST['product_sku']."','".$_POST['kaeufer']."','".$_POST['datum']."','".$_POST['invoice_no']."','".$_POST['quantity']."')"); 
    if(
    $sql){ 
    echo 
    "<p>Eintrag wurde in die Datenbank geschrieben.</p>"
    $sql_update = @mysql_query("UPDATE '$tabname2' SET '$tabname2_spalte' = '$tabname2_spalte' + '".$_POST['quantity']."' WHERE 'products_model'='".$_POST['product_sku']."'");
    if(
    $sql_update) echo "<p>Anzahl wurde aktualisiert.</p><a href=\"javascript:history.back(-1);\">Zur&uuml;ck</a>"
    else echo 
    "<p><b>Fehler:</b> Anzahl konnte nicht aktualisiert werden.</p><a href=\"javascript:history.back(-1);\">Zur&uuml;ck</a>"

    else echo 
    "<p><b>Fehler:</b> Eintrag konnte nicht in die Datenbank geschrieben werden.</p><a href=\"javascript:history.back(-1);\">Zur&uuml;ck</a>"
    @
    mysql_close($server); 

    else{ 
    echo 
    "<p>Bitte alle Felder ausf&uuml;llen.</p>"
    ?>
    <table cellspacing="2" cellpadding="1"> 
    <tr> 
    <td>Ürün Ciktisi</td> 
    </tr> 
    <tr> 
    <td><input type="hidden" name="verkauf_id"></td> 
    </tr> 
    <tr> 
    <td>Ürün Kodu</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="product_sku"></td> 
    </tr> 
    <tr> 
    <td>Firma</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="kaeufer"></td> 
    </tr> 
    <tr> 
    <td>Tarih</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="datum"></td> 
    </tr> 
    <tr> 
    <td>Fatura No</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="invoice_no"></td> 
    </tr> 
    <tr> 
    <td>Adet</td> 
    </tr> 
    <tr> 
    <td><input type="text" name="quantity"></td> 
    </tr> 
    <tr> 
    <td><input type="submit" value="eintragen"></td> 
    </tr> 
    </table> 
    </form> 
    <?php 

    ?> 
    </body> 
    </html>
    Zuletzt geändert von haloki; 23.04.2004, 10:12.

  • #2
    hi


    if(isset($_POST['verkauf_id']) > 0 && isset($_POST['product_sku']) > 0 && isset($_POST['kaeufer']) > 0 && isset($_POST['datum']) > 0 && isset($_POST['invoice_no']) > 0 && isset($_POST['quantity']) > 0){
    isset() liefert meines wissens true or false zurück..



    lg, harry d.

    Kommentar


    • #3
      wir duzen uns alle hier, also da brauchen Sie nicht förmlich zu sein

      Deine SQL-Command sind falsch, schau mal in Manual nach:
      - wie INSERT aufgebaut ist
      - wie Spaltennamen angesprochen wird
      - wie versch. Datentypen übergeben wird
      ausserdem in PHP
      - Funktionsrückgabewert beachten
      - Fehlerabfang bei DB-Abfragen
      usw. schau besser mal bei schattenbaum vorbei, Link in meiner Signatur.

      Kommentar


      • #4
        Sollte ich stattdessen strlen benutzen?

        Eigentlich laeuft das erste Teil des Skriptes ganz gut. Ich habe mit dem zweiten Teil Probleme. Die Daten werden in die erste Tabelle eingetragen. Aber die Spallte von der zweiten Tabell wird nicht geupdated.

        mit strlen habe ich es auch probbiert. Das ging leider überhaubt nicht.

        Danke für deine Antwort

        mfg

        Kommentar


        • #5
          befolgen sie bitte seinem rat und machen sie sich die mühe einmal alles genau durchzulesen..!

          falls es dann noch fragen gibt sind wir natürlich gerne berreit ihnen zu helfen..



          lg, harry d.

          Kommentar


          • #6
            @asp2php

            Danke für die Empfehlung aber ich konnte nicht mit den Hilfeseiten weiter kommen und deswegen habe ich euch gefragt. Es waere natürlich sehr nett, dass du mir dein Wissen zeigen und den Fehler herausfinden würdest.
            Natürlich wenn du dafür Zeit hast.

            mfg

            Kommentar


            • #7
              - das mit isset hat icon dir schon gesagt
              - Insert braucht eine Liste von Spaltenangabe um die Werte in Values zuzuordnen
              - alles was zwischen ' liegt interpretiert SQL als string-konstante
              - wenn du $sql = mysql_query(...) or die(mysql_error()); machst, bekommst
              du auch die Fehler angezeigt und tappst auch nicht im Dunkel

              Kommentar


              • #8
                PHP-Code:
                if(isset($_POST['verkauf_id']) > && isset($_POST['product_sku']) > 0  usw.

                // wozu hast du dir hier das > 0 gedacht
                //isset gibt true und false zurück 
                http://de.php.net/manual/de/function.isset.php

                um if bedingungen zu prüfen lohnt sich auch eine echo ausgabe in den Bereichen


                PHP-Code:
                INSERT INTO tabelle (spalte1,spalte2VALUES(wert1,wert2); 
                http://www.mysql.de/doc/de/HANDLER.html

                PHP-Code:
                @mysql_query
                //das @ verhindert die Fehlerausgabe, ist schlecht um ein Fehler zu finden 
                auch zu empfehlen, am besten immer verwenden
                http://de.php.net/manual/de/function.mysql-error.php

                um zu prüfen welche variablen ankommen:
                PHP-Code:
                 print_r($_POST); 
                oder 
                print_r
                ($_GET); 

                auch schön für später
                http://de.php.net/manual/de/function...ape-string.php
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  - Insert braucht eine Liste von Spaltenangabe um die Werte in Values zuzuordnen
                  nicht wirklich.

                  Code:
                  INSERT INTO tab VALUES ('', '', '', ..);
                  sollte bei passender spaltenzahl funktionieren. jedoch mußt du halt immer alle werte angeben.
                  Die Zeit hat ihre Kinder längst gefressen

                  Kommentar


                  • #10
                    geht auch, aber das ja sowas von unsauber!

                    Kommentar

                    Lädt...
                    X