Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

$_POST an mySQL DB übermitteln

Wie ihr sicherlich sehen könnt, würde ich gerne die Variablen an die Datenbank übermitteln. Das ganze scheint auch zu funktionieren, nur wird der WERT der Variablen nicht korrekt weitergegeben. Die Spalten sind leer.

Da die direkte übergabe der der $_POST nicht funktioniert hat, habe ich es so versucht. Das selbe Problem.

Keine Fehlermeldung, aber auch kein Inhalt.


Code:                   In Zwischenablage kopieren (nur IE)
1">

Hier gehts zum Orginal Eintrag "$_POST an mySQL DB übermitteln" im Forum

Antworten

hast da auch noch ein mysql_query ? vielleicht ein mysql_error() oder wenigstens ne angabe welche deiner ganzen die und echos ausgegeben werden?


2.

Hm, es kommt ja kein Fehler. Er sagt mir "Die Datenbanken wurden eingefügt".
Aber es ist keine neue Zeil vorhanden. Ich habe vergessen zu sagen, ich habe einen Primärschlüssel "ID" auf auto_increment in der Tabelle. Kann das daran liegen? Ich dachte, der Wert muss weggelassen werden, damit es nach System ansteigt.


3.

dein echo "die daten wurden eingefügt" kommt vor dem eigentlichen statement, was noch nichtmals mehr ausgeführt wird.

du hättest da genausogut hinschreiben können "dein bankkonto wurde aufgeladen" .. hätte genau so funktioniert.

Code:                   In Zwischenablage kopieren (nur IE)
2">

nur so wird auch was eingetragen. (sofern dein query stimmt, das hab ich jetzt nicht geprüft.)


4.

Vielen Dank erstmal!

Ich habe es jetzt geändert, hoffentlich korrekt und es ist immernoch das selbe Problem.


Zitat:
Verbindung wurde aufgebaut
Eingefügt!
Dennoch wird keine neue Zeile eingefügt. Hm. Habe versucht den Code umzustellen. Ist das übrhaupt richtig so?

Code:                   In Zwischenablage kopieren (nur IE)
3">




5.

Zitat:
Tetshuno postete
Eingefügt!
Dennoch wird keine neue Zeile eingefügt. Hm. Habe versucht den Code umzustellen. Ist das übrhaupt richtig so?[/quote] Nein!
Volker hat Dir doch einen (auf den ersten Blick) funktionierenden Code gemacht, warum nutzt Du den nicht? Du rufst einmal mysql_query mit dem String auf und prüfst hinterher, ob mysql_query mit einem leeren String funktioniert. Deshalb frage ich mich: Verstehst Du eigentlich, was Du da machst?

Desweiteren gilt hier auch die Standard-Antwort:
Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An den Anfang des Scriptes schreibt man die Zeile: error_reporting(E_ALL);
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt.

Desweiteren solltest Du - bevor Du den Code auf die Weiten des Netzes loslässt - Dich mal über SQL-Injections schlau machen. Bei einer bestimmten Konfiguration kann man Deinen Code schön manipulieren.

So far...
Matthias


6.

wahrscheinlich steht in $_POST gar nix drin, weil in form action nicht auf
die Seite weitergeleitet wird.


7.

Die $_POST müssten eigentlich voll sein, alle Formulare sind korrekt verlinkt.

Das Thema injections sagt mir leider wirklich nichts, aber diese .php-Datei wird sich sowieso nur dann auf den Server befinden, wenn jemand im Team was hinzufügt. Ansonsten ist sie nicht drauf.

Ausserdem: Ich bin Anfänger, darum frage ich ja hier. ^^

Ich habe 3 datei.php's . In der ersten wird die EIngabe gemacht. Danach folgt eine Preview und 2tes Formlar, für dessen default-values hole ich mir die Angaben aus den $_POST's des erstens Formulars und erstelle selbige wieder, sende sie aber an die letzte Datei, die hier gezeigt ist.

@Mantneu: Ich werd das mal versuchen, danke.

und PS: Volkers Code musste ich ändern, weil er so wie er jetzt ist nichts bringt. Ich musste ja wenigstens die Variablen angeben. =/ Ich hab nichts geändert, lediglich in meinen EIngebaut. Dann kam das selbe und ich hab ihn etwas editiert.


8.

siehste... laß Dir mal mit

echo "<pre>";
print_r ($_POST);
echo "</pre>";

$_POST ausgeben vor dem DB-Eintrag.


9.

Ja, sie werden wiedergegeben. SInd vorhanden.

Kann es sein, dass oben bei der Übergabe an die Variablen ein Fehler ist? Hab ich da Zeichen falsch gesetzt? ($VORNAME =..)


10.

bau das mal um:

Code:                   In Zwischenablage kopieren (nur IE)
4">




11.

Er sagt mir folgendes:

Zitat:
Anfrage ( INSERT INTO content_stars( JOB, VORNAME, NAME, GEB, BIO, TRIVIA, FILME, SEARCH) VALUES( $JOB, $VORNAME, $NAME, $GEB, $BIO, $TRIVIA, $FILME, $SEARCH)) konnte nicht ausgeführt werden : Unknown column '$JOB' in 'field list'
Hmmm. Ehrlich gesagt, verstehe ich das nicht so ganz. $JOB ist doch eine Variable, oder nicht?


Code:                   In Zwischenablage kopieren (nur IE)
5">




12.

Zitat:
Tetshuno postete
Hmmm. Ehrlich gesagt, verstehe ich das nicht so ganz. $JOB ist doch eine Variable, oder nicht?
Die Variable wird aber von PHP nur umgewandelt, wenn Du den String in Anführungszeichen (= doppelte Hochkommata) packst. Bei einfachen Hochkommata wie Du sie nutzt werden Variablen nicht umgewandelt.
Also nutze doppelte Hochkommata oder schreibe folgendes:
Code:                   In Zwischenablage kopieren (nur IE)
6">

So far...
Matthias


Hier gehts zum Orginal Eintrag "$_POST an mySQL DB übermitteln" im Forum
 
phpforum.de | Impressum