DB auslesen und wieder speichern

Das geht auch ohne Formular über den direkten Weg Auslesen => Eintragen. So wie du es machen willst, ist es IMHO schon der richtige Weg. Was mich hier ein bisschen stört:

- Du verwendest keine Fehlerbehandlung, im Falle eines Fehlers bekommst du nichts mit.
- Du hast kein error_reporting aktiv, so dass vermutlich Fehleranzeigen unterdrückt werden, die dir bei der Fehlersuche helfen können.
- Du verwendest IMHO Variablen, die nicht vorher mit Werten befüllt worden sind.

Kannst du mir oder auch den anderen Helfern hier sagen, wo die Variablen gefüllt werden, die du einfach so in den Query einbaust:

PHP:
mysql_select_db("katmedia") or mysql_error();
mysql_query("INSERT INTO `bestellung` (`datum` ,`user_id`, `produkt`, `menge`, `preis`, `kografik`, `summe`)
                                VALUES ('NOW()', '$_SESSION[user_id];', '$produkt', '$menge', '$preis', '$kografik','$summe');");

Ich meine $produkt, $menge, usw. Sollten die nicht eigentlich aus deinem MySQL-Ergebnis kommen, und somit im Array $data stehen? Ich sehe den Code nicht, der aus dem $data-Array die Elemente in Variablen reinschreibt. Das kann ein Fehler sein.

Hier muss man immer Rätselraten, und das obwohl schon längst bekannt sein sollte, wie man auf Fehlersuche geht.

Wende die genannten Techniken an, dann wird dir der Fehler bestimmt auffallen.

Gehe folgendermaßen vor:

1. Schalte error_reporting ein
2. Füge "or die(mysql_error())" ein

Poste hier die Fehlermeldungen.
 
Das geht auch ohne Formular über den direkten Weg Auslesen => Eintragen. So wie du es machen willst, ist es IMHO schon der richtige Weg. Was mich hier ein bisschen stört:

- Du verwendest keine Fehlerbehandlung, im Falle eines Fehlers bekommst du nichts mit.
- Du hast kein error_reporting aktiv, so dass vermutlich Fehleranzeigen unterdrückt werden, die dir bei der Fehlersuche helfen können.
- Du verwendest IMHO Variablen, die nicht vorher mit Werten befüllt worden sind.

Kannst du mir oder auch den anderen Helfern hier sagen, wo die Variablen gefüllt werden, die du einfach so in den Query einbaust:

PHP:
mysql_select_db("katmedia") or mysql_error();
mysql_query("INSERT INTO `bestellung` (`datum` ,`user_id`, `produkt`, `menge`, `preis`, `kografik`, `summe`)
                                VALUES ('NOW()', '$_SESSION[user_id];', '$produkt', '$menge', '$preis', '$kografik','$summe');");

Ich meine $produkt, $menge, usw. Sollten die nicht eigentlich aus deinem MySQL-Ergebnis kommen, und somit im Array $data stehen? Ich sehe den Code nicht, der aus dem $data-Array die Elemente in Variablen reinschreibt. Das kann ein Fehler sein.

Hier muss man immer Rätselraten, und das obwohl schon längst bekannt sein sollte, wie man auf Fehlersuche geht.

Wende die genannten Techniken an, dann wird dir der Fehler bestimmt auffallen.

Gehe folgendermaßen vor:

1. Schalte error_reporting ein
2. Füge "or die(mysql_error())" ein

Poste hier die Fehlermeldungen.


ich bekomm ja deswegen kein fehler weil ich nicht weis wie ich die daten abschicke denn wie bei einem formular is es ja nicht :(

zu deinen anderen fragen die daten werden von der tabelle "angebote" ausgelesen

PHP:
<?php 
mysql_select_db("angebote");
$angebotsnummer = mysql_real_escape_string ($_POST["angebotsnummer"]);
$SQL_statement=sprintf("SELECT * FROM angebote WHERE angebotsnummer=%d", $_GET['angebotsnummer']);
$resultset=mysql_query($SQL_statement) or die(mysql_error());
$data=mysql_fetch_array($resultset);
if($data) {
?>

error_reporting it eingeschlatet
or die(mysql_error()) hab ich auch hinzugefüht
aber tut sich ja noch immer nicht ich hab auf denn butten klicken tut sich aber nix :(

musste ich keine if (isset($_REQUEST['submit'])) verwenden das ich die daten abschicken kann?
 
So, mal langsam. Du hast hier einige Hunde.

1. Du holst in Zeile 2 die Angebotsnummer aus $_POST und speicherst sie prima mit mysql_real_escape_string() in $angebotsnummer ab. Das ist soweit in Ordnung.
2. Nun verwendest du auf einmal $_GET['angebotsnummer'] in Zeile 3, das scheint schon mal falsch zu sein. Wozu ist die Zeile 2 dann überhaupt gut?
3. Ich sehe immer noch nicht, was mit den Elementen im Array $data passiert. Der Code nach der if-Bedingung wäre interessant.
4. Gebe direkt nach Zeile 3 mal die Variable $SQL_statement mit echo aus um zu sehen, ob der Query in Ordnung ist.
 
1 und 2 war mein fehler .. mit GET funkt alles aber hatte mich auch mit POST erkunding und hatte was getestet..
3. ähhh eine if anweidung hab ich nicht
4. der Query ist in ordung
 
1 und 2 war mein fehler .. mit GET funkt alles aber hatte mich auch mit POST erkunding und hatte was getestet..
Bedeutet deine Aussage jetzt, das alles funktioniert, wie gewünscht?

3. ähhh eine if anweidung hab ich nicht

Ähmm, und was ist das in Zeile 6 in deinem letzten Posting mit Code (Post Nummer 12 hier im Thread)?

is das so denn richtig der Button mein ich

das is sicher falsch oder?

Was sollte daran falsch sein? Es ist HTML. Keine syntaktischen Fehler sichtbar. Hat aber auch nichts mit deinem Problem zu tun. Solange der Button innerhalb der Form-Tags ist, ist alles ok.
 
so jetzt hab ich es war mein fehler ab die ganze zeit an einer anderen datei die änderungen gemacht und und und...

aber es schriebt mir schon in die DB rein aber das datum ist 0000-00-00
 
Dann zeig mal den Query, so wie er aktuell in deinem Script steht. Wenn du jetzt so-und-soviele Änderungen gemacht hast, kann ich hier alles mögliche raten.
 
PHP:
mysql_select_db("angebote");
$angebotsnummer = mysql_real_escape_string ($_GET["angebotsnummer"]);
$SQL_statement=sprintf("SELECT * FROM angebote WHERE angebotsnummer=%d", $_GET['angebotsnummer']);
$resultset=mysql_query($SQL_statement);
$data=mysql_fetch_array($resultset);
if($data) {

mysql_query("INSERT INTO `bestellung` (`datum` ,`user_id`, `produkt`, `menge`, `preis`, `kografik`, `summe`)
                                VALUES ('NOW()', '$_SESSION[user_id];', '$data[produkt]', '$data[menge]', '$data[preis]', '$data[kografik]','$data[summe]');");

und
PHP:
<?php echo $data['produkt'] ?>
<?php echo $data['preis'] ?>
.
.
 
Die Spalte "datum" in bestellung ist jetzt also mit 0000-00-00 gefüllt, richtig?

Dann mach mal die Single-Quotes bei NOW() weg, denn NOW() ist eine MySQL-Funktion und dafür natürlich nicht als String behandelt werden.
 
Zurück