Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Aus Tabelle A auslesen und in Tabelle B einfügen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Aus Tabelle A auslesen und in Tabelle B einfügen


 
MikeSchw
23-04-2002, 15:55 
 
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 =$anz[$row[id]]
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="<? $anz[$row[id]] ?>"> </td>
<td><? echo $row[7]; ?></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"><? echo $row[8] ?></td>
<td><? echo $row[9]; ?></td>
</tr>
<?
}
mysql_free_result($result);
?>

 
Titus
23-04-2002, 20:25 
 
$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

 
MikeSchw
24-04-2002, 10:47 
 
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.

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

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','$bestelldaten ')";

Danke schon mal für alle hilfreichen Antworten.

Mike.

 
Titus
24-04-2002, 11:34 
 
$bestelldaten musst du dir über eine Schleife zusammenbasteln.

 
MikeSchw
24-04-2002, 11:45 
 
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?

 
Titus
24-04-2002, 12:02 
 
erst dein select, dann

$bestelldaten = '';
while ($row=mysql_fetch_row($result))
$bestelldaten .= ", $row[0]:$row[1]";
$bestelldaten = substr($bestelldaten, 2);

und dann das insert.

 
MikeSchw
24-04-2002, 13:23 
 
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]:$anz[$row[1]]:";

Wie kann ich das noch umgehen?

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

Danke.

 
Titus
25-04-2002, 13:10 
 
Original geschrieben von MikeSchw
$bestelldaten .="$row[0]:$row[1]:$row[9]:$anz[$row[1]]:";

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.

 
MikeSchw
25-04-2002, 13:23 
 
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

- -

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