Aus Tabelle A auslesen und in Tabelle B einfügen

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

  • Aus Tabelle A auslesen und in Tabelle B einfügen

    Ein herzliches Grüß Gott,
    heute stellt sich mir wieder mal ein Problem. Unten dargestelltes Formular enthält im letzten Abschnitt die Bestelldaten aus der Tabelle Angebote.
    Soweit funktioniert alles, aber ich will nun die Bestelldaten eben in die Tabelle Bestellungen ablegen. Habe nun wirklich einiges versucht, komme aber einfach nicht mehr weiter.

    Der Bestelltext ($bestelltext) besteht aus z.b.
    Bestellmenge =[COLOR=red]$anz[$row[id]][/COLOR]
    Artikel
    Preis

    Wie muss ich den nun die Syntax wählen, damit in der Tabelle Bestellungen nun die Bestellmenge auch eingetragen wird?
    $bestelltext=Anzahl;
    $bestelltext=Artikelnummer;

    <?
    if ($sent && $name!="" && $str!="" && $plz!="" && $ort!="" && $email!=""){
    // Überprüfe Benutzereingaben
    $dberror = "";
    ?>
    <h4>Danke f&uuml;r Ihre Bestellung.</h4>
    <?
    $benutzer = "xxx";
    $passwort = "xxx";
    $db = "xxx";
    $host = "localhost";
    $link = mysql_pconnect( $host, $benutzer, $passwort );

    if ( ! $link )
    {
    $dberror = "Keine Verbindung zu MySQL server";
    return false;
    }
    if ( ! mysql_select_db( $db, $link ) )
    {
    $dberror = mysql_error();
    return false;
    }

    $sql = "INSERT INTO bestellungen ( bestelleingang,name,str,plz,ort,tel,email,bestelltext) values (DATE_FORMAT(sysdate(),'%d.%m.%y' ' %H:%m:%s'),'$name','$str','$plz','$ort','$tel','$email','$bestelltext')";

    if ( ! mysql_query( $sql, $link ) )
    {
    $dberror = mysql_error();
    return false;
    }
    return true;

    $to="";
    $betreff="Bestellung von $name";
    mail ("$to", "$betreff", "Name: $name\nOrt: $ort\nEmail: $email\nBestelltext: '$bestelltext'");

    } else {
    if($sent){
    echo "<h5><font color='#>Bitte füllen Sie die mit * gekennzeichneten Felder aus!!!</font></h5>";
    if (!ereg("^.+@.+\\..+$", $email)) {
    echo "<h5><font color='#>Bitte eine korrekte Emailadresse eingeben!</font></h5>"; }
    }
    ?>
    <form name="bestellung" method="post" action="<? echo $PHP_SELF ?>">
    <table border="0" cellspacing="0" cellpadding="4" align="center">
    <tr>
    <td> </td>
    <td colspan="2">
    <h2>Ihre Bestellung</h2>
    </td>
    </tr>
    <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">*Name:</td>
    <td>
    <input type="text" name="name" size="30" value="<? echo $name ?>" MAXLENGTH="20">
    </td>
    </tr>
    <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top"> *Stra&szlig;e:</td>
    <td>
    <input type="text" name="str" size="30" value="<? echo $str ?>" MAXLENGTH="20">
    </td>
    </tr>
    <tr><td valign="top">&nbsp;</td>
    <td valign="top">*PLZ/Ort </td>
    <td>
    <input type="text" name="plz" size="5" maxlength="5" value="<? echo $plz ?>">
    /
    <input type="text" name="ort" value="<? echo $ort ?>" maxlength="25">
    </td>
    </tr>
    <tr>
    <td>&nbsp;</td>
    <td>*Telefon</td>
    <td>
    <input type="text" " name="tel" value="<? echo $tel ?>" maxlength="20">
    </td>
    </tr>
    <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">*email: </td>
    <td>
    <input type="text" name="email" value="<? echo $email ?>">
    </td>
    </tr>
    </table>

    <?
    $connection = mysql_connect("localhost", "xxx", "xxx") or die ("Couldn't connect to database");
    $db = mysql_select_db("xxx", $connection) or die ("Couldn't select database");
    $SQL = " SELECT COUNT(*) AS cnt FROM angebote";
    $QUERY = mysql_query($SQL) or die("<select> QUERY FAILED! $SQL");
    $totalRecords = mysql_result($QUERY,0,"cnt");

    $SQL="select * from angebote";
    $result=mysql_query($SQL) or die
    ("Fehlermeldung=".mysql_error());
    ?>
    <hr>
    <table width="60%" border="0" cellspacing="2" cellpadding="2" align="center">
    <tr>
    <td>Anzahl</td>
    <td>Bestellnr.</td>
    <td>Artikelbezeichnung</td>
    <td>Farbe/Ausf&uuml;hrung</td>
    <td>Preis</td>
    <td>Einheit</td>
    </tr>
    <tr>
    <?
    while ($row=mysql_fetch_row($result))
    {
    ?>
    <td>
    <input type="text" name="anz[<?=$row[1]?>]" size="3" maxlength="2" value="<? [COLOR=red]$anz[$row[id]][/COLOR] ?>"> </td>
    <td><? [COLOR=red]echo $row[7]; [/COLOR]?></td>
    <td><? echo $row[4]; ?></td>
    <td><input type="text" name="spezifikation[<?=$row[1]?>]2" size="15" maxlength="15" value="<? $spezifikation[$row[id]] ?>">
    </td>
    <td align="right"><? [COLOR=red]echo $row[8] [/COLOR]?></td>
    <td><? echo $row[9]; ?></td>
    </tr>
    <?
    }
    mysql_free_result($result);
    ?>
    Zuletzt geändert von ; 25.04.2002, 11:35.

  • #2
    $sql = "INSERT INTO bestellungen ( bestelleingang,name,str,plz,ort,tel,email,bestelltext) values (now(),'$name','$str','$plz','$ort','$tel','$email','$bestelltext')";

    und bestelleingang sollte vom Typ DATETIME sein
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hallo und danke für den Tip mit now(). Habe ich verwendet.
      Leider löst es nicht ganz mein Problem.
      In Rot dargestellt sind alle Bestelldaten aus der Tabelle Angebote. Diese sollen nun in die Tabelle Bestellungen komplett übernommen werden.
      [COLOR=red]
      while ($row=mysql_fetch_row($result))
      {
      echo $anz[$row[1]];
      echo [$row[2];
      }
      [/COLOR]
      Anzahl, kann und soll der User selber eingeben $anz[$row[1]];
      Artikelnummer (aus Tabelle Angebote) $row[2];
      Artikelbezeichnung (wie vor)
      Spezifikation (wie vor)
      Preis (wie vor)
      Gesamtpreis (errechnet sich)

      Wie definiere ich nun meine Insert-Anweisung?

      $sql = "INSERT INTO bestellungen ( bestelleingang,name,str,plz,ort,tel,email,bestelldaten) values (now(),'$name','$str','$plz','$ort','$tel','$email','[COLOR=red]$bestelldaten[/COLOR] ')";

      Danke schon mal für alle hilfreichen Antworten.

      Mike.
      Zuletzt geändert von ; 24.04.2002, 10:50.

      Kommentar


      • #4
        $bestelldaten musst du dir über eine Schleife zusammenbasteln.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Ja, das habe ich ja auch schon probiert. Aber Ich kriegs einfach nicht hin. Entweder wird mir der letzte Wert abgelegt oder der erste.

          Das Problem liegt darin, daß ich die Informationen von (while) nicht in die Insert-Anweisung reinbekomme.

          Du siehst, ich habe das Problem zwar erkannt, aber wie krieg ich´s hin? Kannst du mir da bitte helfen?

          $sql = "INSERT INTO bestellungen ( bestelleingang,name,str,plz,ort,tel,email,bestelldaten) values (now(),'$name','$str','$plz','$ort','$tel','$email','$bestelldaten ')";

          Bedeutet:
          $bestelldaten = while ($row=mysql_fetch_row($result))
          {
          echo $anz[$row[1]];
          echo [$row[2];
          }

          Und das jetzt in die Insertanweisung?! Wie?
          Zuletzt geändert von ; 24.04.2002, 11:51.

          Kommentar


          • #6
            erst dein select, dann
            PHP-Code:
            $bestelldaten '';
            while (
            $row=mysql_fetch_row($result)) 
              
            $bestelldaten .= ", $row[0]:$row[1]"
            $bestelldaten substr($bestelldaten2); 
            und dann das insert.
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Hey, danke Titus, du bist einfach der Beste. Es funktioniert. Ohne dich wäre ich da nicht hingekommen.
              Eine Hürde muss ich aber noch nehmen, dann ist es geschafft. Hoffentlich.

              Die Formulareingabe für die Bestellmenge steckt hier drin: $anz[$row[1]]. Jetzt wird aber gemeckert wie folgt:

              Parse error: parse error, expecting `']'' in c:\foxserv\www\bbw\bestellung1.php on line 147

              $bestelldaten .="$row[0]:$row[1]:$row[9]:[COLOR=red]$anz[$row[1]]:";[/COLOR]

              Wie kann ich das noch umgehen?

              Dann zum Verständnis: was wird mit diesem substr($bestelldaten, 2); eigentlich bezweckt?

              Danke.
              Zuletzt geändert von ; 24.04.2002, 13:26.

              Kommentar


              • #8
                Original geschrieben von MikeSchw
                $bestelldaten .="$row[0]:$row[1]:$row[9]:[COLOR=red]$anz[$row[1]]:";[/COLOR]
                Nimm den geschachtelten Array-Ausdruck aus den Anführungszeichen raus, PHP bekommt das so nicht sauber geparst. So schon:
                $bestelldaten .="$row[0]:$row[1]:$row[9]:".$anz[$row[1]].":";

                Dann zum Verständnis: was wird mit diesem substr($bestelldaten, 2); eigentlich bezweckt?
                Damit wird das ', ' ganz vorne vom String abgeschnitten.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Du bist einfach Spitze. Ich werde dich in mein Nachtgebet mit einschließen. Denn jetzt kann ich endlich wieder schlafen.

                  Ich habs ausprobiert und es klappt. Juhuuuuu.

                  Danke.

                  Mike

                  Kommentar

                  Lädt...
                  X