DB Problem --> Daten aus Adresszeile in Datenbank speichern |
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Moin,
ich muss Euch schon wieder mal um Rat fragen, da ich trotz intensiver Suche nicht weiterkomme.
Habe ein Abfragescript geschrieben. Die Maske enthält Texfelder z.B.: Name in die der Name eingegeben wird und mehrere Checkboxen.
Funktioniert auch in sofern, dass die Eingaben in der Adresszeile angezeigt werden.
Mein Problem ist folgendes:
Wie erreiche ich, dass die eingegebenen Daten an eine Datenbank gesendet und dort gespeichert werden?
Ich hoffe jemand, der ein wenig mehr von der Materie versteht als ich kann mir da helfen.
Ich Danke Euch schon mal im vorraus
MfG k-man.
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
Ehemaliges Mitglied (#2819)
Otto-Normal-Poster
Beiträge: 86 |
auf die gesendete seite machst du eine Sql abfrage zb. so
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15: |
$db_host = "localhost";
$db_user = "root";
$db_password = "";
$db_name = "test";
mysql_connect($db_host,$db_user,$db_password) or die (mysql_error());
mysql_select_db($db_name) or die (mysql_error());
$sql="INSERT INTO tabellenname (angabe1,angabe2) VALUES ('test1','test2')";
$res_id=mysql_query($sql);
?>
|
dieses fügt in angabe1 test1 , in angabe2 test2 ein
musst nu natürlich in deine angaben änden
|
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Danke, aber es funktioniert nicht.
Kann man auf diese Weise auch Werte als arrays in eine Datenbank einfügen?
Oder habe ich einen Denkfehler?
Ich denke mir das ganze so:
Ich habe eine Eingabemaske. Oben werden die schon vorhandenen Datensätze angezeigt.
(das funktioniert) Darunter sollen einige Eingabefelder und Checkboxen zum Eingeben eines neuen Datensatzes oder zum Bearbeiten eines schon vorhandenen angezeigt werden. (funktioniert auch) Nun sollen die neuen bzw. bearbeiteten Daten zur Datenbank geschickt und dort eingetragen bzw. geändert werden.
Wie mache ich das? Ich dachte mir, das dies per Array möglich sein sollte. Oder nicht?
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
eyeytsch
Pixelschubser
Beiträge: 5 |
Nach dem Abschicken des Formulars sind die Daten im "Array"
$_REQUEST['']
zu finden.
Bei Dir z.B. $_REQUEST['name'].
Das vorangegangene Beispiel würde das halt so aussehen (je nach dem wie deine Formularfelder benannt sind):
1: | $sql="INSERT INTO tabellenname (angabe1,angabe2) VALUES ($_REQUEST['feld1'],$_REQUEST['feld2'])"; |
Ich hoffe das hilft dir weiter...
Diese Nachricht wurde geändert von: languitar |
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Ja, danke.
Es hilft mir , aber irgendwas stimmt da immer noch was nicht. Bekomme jetzt eine Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE in Name_der_Datei.php on line 126
Habe so das dumme Gefühl, das es mit dem Tabellennamen zusammenhängt. (habe natürlich nicht Tabellenname eingegeben, sondern den Namene der Tabelle bei mir "p_dat").
Kann es sein das das an dem '_' liegt?
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
eyeytsch
Pixelschubser
Beiträge: 5 |
Es könnte sein, dass Du die Variablen in Hochkommas setzten musst, denn bei Strings funzt das ohne Hochkommas nicht.
|
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Daran liegt es nicht, denn wenn ich die Variablen in Hochkommas setze kommt folgende Fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Name_der_Datei.php on line 126
Habe sie in " " gesetzt, dann kam nur noch die vorher gepostete Fehlermeldung.
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
languitar
Foren-Team
Beiträge: 2795 |
pack mal $_REQUEST['bla'] jeweils in geschwungene Klammern {}
|
 Profil
Editieren
Zitieren
|
eyeytsch
Pixelschubser
Beiträge: 5 |
Bei den Hochkommas bin ich mir eigentlich ziemlich sicher...
Probier doch mal folgendes
1:
2:
3: |
... VALUES ('" . $_REQUEST[''] . "', ...
|
Was ich hier meine ist, dass man die Variablen über den Verkettungsoperator "." einbindet.
Die Reihenfolge hier ist: Hochkomma, Anführungszeichen, Verkettungsoperator, Variable, Verkettungsoperator, Anführungszeichen, Hochkomma
So mach ich das eigentlich immer. Ich finde dadurch wird es viel übersichtlicher, da die Variablen dann in meinem Editor nicht mehr in der Farbe des Strings angezeigt werden, sondern in der "normalen" php-Farbe.
Zu deinem vorigen Post:
Ich denke das Problem liegt daran, dass durch die neu eingebauten Hochkommas der ganze String nicht mehr zusammen passt. d.h. es müssten dann evtl die Hochkommas in der "MItte" über eine Escape Sequenz gerettet werden. Aber dann wird das ganze meiner Meinung nach recht unübersichtlich mit den vielen Backslashes. Drum probier einfach mal das mit dem Verketttungsoperator, dann kannst Du dir die Backslashes sparen.
Good luck... ;)
|
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Besten Dank,
Die Fehlermeldung ist weg (bei beiden Vorschlägen)
Mein Problem besteht nur leider immer noch, dass alle Eingaben in der Adresszeile stehen und nicht in der DB.
---
Wissen ist Macht; nichts wissen macht auch nix!
Diese Nachricht wurde geändert von: k-man |
 Profil
Editieren
Zitieren
|
eyeytsch
Pixelschubser
Beiträge: 5 |
bau doch einfach mal ein
ein.
Dann müssest Du sehen, ob die Daten im Insert stehen oder nicht. Falls nicht ersetz einfach mal das REQUEST durch GET. Vielleicht funzts dann.
|
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Mit GET funzt es nicht, aber mit POST und REQUEST kriege ich die Eingaben angezeigt.
Allerdings wird das gesamte $sql eingabe angezeigt :
INSERT INTO pers (Name,...) VALUES (Klein, 41535, x, , , , , , x, , , , , , x, , , , , )
x = angewählte Checkbox
, = nichtangewählte Checkbox
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
eyeytsch
Pixelschubser
Beiträge: 5 |
sieht doch nicht schlecht aus. Es fehlen meiner Meinung nach nur noch die Hochkommata bei allen Daten, die entweder ein String oder ein Character sind.
Es könnte aber auch daran liegen, dass der Tabellenname und die Spaltennamen nicht in diesem komischen Zeichen stehen, das neben dem sz oben steht.
Bsp: INSERT INTO `pers` (`Name`, ...)
Diese Nachricht wurde geändert von: eyeytsch |
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
So nun habe ich die Ausgabe auch in Hochkomma:
INSERT INTO pers (Name,...) VALUES ('Klein', '41534','x', '', '', '', '', '', 'x', '', '', '', '', '', '', 'x', '', '', '', '')
Er schreibt sie mir nur leider immer noch nicht in meine DB.
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|
k-man
Otto-Normal-Poster Threadstarter
Beiträge: 52 |
Danke Leute.
Es klappt endlich!!!
@eyeytsch: Es lag tatsächlich auch daran das ich keine Apostrophs gesetzt hatte
---
Wissen ist Macht; nichts wissen macht auch nix!
|
 Profil
Editieren
Zitieren
|