WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Formular, UPDATE: Problem mit Variablen / Wertübergabe

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Formular, UPDATE: Problem mit Variablen / Wertübergabe - 03 Dez 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Formular, UPDATE: Problem mit Variablen / Wertübergabe
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hallo,
ich mache eine kleine Formfenster-function, mit der ich
später Datenbank-Werte bearbeiten möchte.
Wenn ich wie unten mit einer Variablen arbeite
finde ich aber nach submit immer nur deren Wert eingetragen.
Z.B. f280, $f280, ...
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11:
$k = "f".$vwf['id'];
echo "
"; if ($$k == TRUE) { $up = "UPDATE test SET xx1 = '$$k' WHERE id = ".$vwf['id'].""; mysql_query($up); } else { echo "nix eingegeben, nix in db";}

Eigenartig für mich ist, wenn ich statt $k
ein gg als name nehme, werden Werte (Text, ...) übergeben.
Habe schon einige Verknüpfungen oder Verkettungen
mit Variblen versucht, komm aber auf keinen grünen Zweig.

Weiß jemand, wie man die Variable im UPDATE-Select richtig
schreibe?

Danke, Jörg

  Profil   Editieren   Zitieren
beule
Otto-Normal-Poster




Beiträge: 91

Hey

versuch mal dem from und dem textarea statische namen zu geben. ich bin der meinung, du kannst keine variable aus der variable machen. also $$k meine ich. php denkt dann die variable heisst $k und merkt nicht das du hier den wert aus der variable $k willst... also ich glaube es ist so hatte das problem auch schon will hier aber nichts falsches erzählen.

cheers
beule

  Profil   E-Mail   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

PHP nutzt bei $$k schon den Inhalt der Variable $k als Variablennamen. Dies sollte man jedoch vermeiden. Einfacher ist die Verwendung von $_POST[$k], da man so auch gleich register_globals beachten würde. Viel einfacher wäre jedoch die Verwendung von Arrays. Wenn man in HTML die Feldnamen in der Form name="f[1]" angibt. Erstellt das aufgerufene PHP-Script daraus ein Array - also $_POST['f']['1'] . (Die 1 in meinem Beispiel entspricht dem Inhalt von $vwf['id'].)

---
Weaverslave

  Profil   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hallo und vielen Dank!
monmentan sehe ich aber nichts mehr. Hatte ´s einfach so eingesetzt, aber ...
1: 
2: 
3: 
4: 
5:

u.a. ...

davor hatte ich schon sowas bearbeitet:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16:
 
             
"; if ($textfeld == TRUE) $up = "UPDATE $tabelle SET $updfeld = '$textfeld' WHERE $idfeld = '$id'"; mysql_query($up); } ?>

das funktioniert (eigentlich) - aber nicht als function:
Der Haken liegt wohl am Submit-Button,
an den ich nicht mehr gelange?
... besser erstmal abwaschen ;-\
habt ihr noch ein paar Tipps?
Danke, Gruß, Jörg

  Profil   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hallo,
also ich kapiere nicht, wie du das meinst.
Ich wollte mit Namen aus der id wie f722 arbeiten.
Die kann ich "produzieren" oder vorfertigen in je einem Array.
Wie aber soll die hier rein- bzw. rauskommmen?
SET titel = ".$_POST['f']['1']."
Hab ja (u.a. :-/ ) das Problem, kein Doppeltes $$ zu verwenden,
sonst könnt man ja vor $array ...
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14:
$array[] = "f".$vwf[1]."";
echo $array[0]."
"; // test ?>


meine vorherige "Lösung" arbeitet auch unsauber
und liefert im Quellcode:

nach 2x schicken sieht der Quellcode dann so aber aus:

Grüße, Jörg

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

In der vorherigen Lösung schreibst du auch Attribute der Eingabefelder in die Action des Formulars. Das solte einen sehr seltsamen HTML-Quellcode ergeben.

In der aktuellen Variante bist du schon nah dran. Allerdings passen der Name des Textarea und die genutzte Variable nicht zusammen. Der Name muss nach dem Schema f[id] aufgebaut sein. Also

1:
echo '
   

";
echo "f".$vwf[1]." ?
";
echo var_dump($_POST)." 

";

wird meist nix in die DB eingetragen -
machmal eine 1 (??)
aber ? ...
Grüße

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Was soll das print_r() da tuen?

---
Weaverslave

  Profil   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Hi,
.. Verzweiflung, Wahnsinn, ...

  Profil   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

nee -
nach Anderem nur ein (verzagter) Versuch ...
1: 
2:
$up = "UPDATE $tab SET $updf = '".$_POST['0']."' WHERE $idf = ".$vwf[1]."";

ick wees net, wat icke bei SET noch verwsuchen soll.
dat array schaut so aus:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11:
array(2) {
  ["f"]=>
  array(1) {
    [712]=>
    string(7) "aaaa cc"
  }
  ["submit"]=>
  string(7) "Und ab!"
}

bloß das aaaa cc kommt nicht in die DB ...
Grüße.

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Da steht doch das der Wert in $_POST['f'][712] drin ist. Nciht in $_POST['0']. 712 sollte $vwf[1] entsprechen - also $_POST['f'][$vwf[1]].

---
Weaverslave

  Profil   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

Jippie! "Richtfest" - zumindest für diesen Abschnitt.
Danke!
So klappt es jetzt:
1: 
2: 
3: 
4: 
5:
if ($_POST["submit"])
      $up = "UPDATE $tab SET $updf = '".$_POST['f'][$vwf[1]]."' WHERE $idf = ".$vwf[1]."";
      mysql_query($up);

Zwei Fragen noch - eine zugleich auch Teil der Ursache
des "Fehlers" bzw. der letzten Verzögerung:

Zum einen lags am Klammern- und Apostoph-Wirrwar vor meinen
Augen: Im Formfenster konnte ich das Wert-Update nicht gleich
sehen, sondern habs in MySql-Front verfolgt.

- Gibt es einen einfachen Trick, wie ich hier
(Form oben, if() unten ...)
mit dem Submit gleich den akt Wert oben sehen
(hier stellt sich immer wieder letzte Stand her,
erst nach Seiten-reload sehe ich korrigiertes)

- Formularwerte für die MySQL-Query absichern:
bzgl. absichern mit mysql_real_escape_string arbeite
ich mit php 4.2.1.
Habt ihr diesbzgl. eine Tipp für mich?

Grüße von der waterkant,
Jörg

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Du kannst dir die Array Strukturen von PHP ähnlich wie eine Verzeichnisstruktur vorstellen. Wenn eine Element komplett in [] steht, wird es erstmal zu einem Wert aufgelöst (also der Wert aus der Variable ausgelesen) und bildet einen Schlüsselnamen.

aus
$_POST['f'][$vwf[1]]
wird so intern
$_POST['f'][712]

Zu mysql_real_escape_string() solltest du einfach mal einen Blick in das PHP-Manual. Am besten schaust du auch mal in das QNet Tutorial.

Wenn du in der Form immer den aktuellen Wert sehen willst, mußt du halt die Variable, welche du ausgibst, nach dem erfolgreichen Update ändern.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
elster
Otto-Normal-Poster
Threadstarter




Beiträge: 61

jupp - alles klar - soweit
Sicherheit muß ich bei Zeiten noch machen ...

Hab vor die Form noch ein
1:

platziert.

Danke, ciao, Jörg

  Profil   Editieren   Zitieren
 

Antworten
Forum » PHP & MySQL » Formular, UPDATE: Problem mit Variablen / Wertübergabe

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Formular, UPDATE: Problem mit Variablen / Wertübergabe im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8133128    Heute : 473     Gestern : 478     Online : 27     3.12.2024    19:09      0 Besucher in den letzten 60 Sekunden        
Nach oben