Variablenübergabe
Holger
- php
Hi,
ich rufe über Button ein Editierfeld (Formular) auf und habe Probleme mit der Datenübergabe. Dabei ist egal, ob POST oder GET verwendet wird.
<BUTTON style="height:20px;margin:0px 10px 0px 10px;" onClick="self.location.href='editor.php?action=edit&wo=",$varname,"'">edit</BUTTON>
Ist $varname eine Zahl oder ein string ("ABCD") ist das ja kein Problem, aber bei mir ist $varname = "#ABCD", weil das in der Datenbank so liegt. Sobald ein # vorangestellt ist, funktioniert die Übergabe nicht :(( Eine Idee???
THX Holger
ja # ist ein komentar zeichen!!!!!!!!!!!!!!!
ja # ist ein komentar zeichen!!!!!!!!!!!!!!!
Das weiss ich ja, aber da ich die Daten aus einer Datenbank auslese, und diese Variable mit #... auch noch der Primärschlüssel ist, muss ich leider irgendwie damit arbeiten.
Also wie kann ichs dennoch übertragen?? Ich mein ich könnts einfach abschneiden, geht aber nicht, weil es Datensätze mit #abc und nur abc gibt :(
Holger
ja # ist ein komentar zeichen!!!!!!!!!!!!!!!
Das weiss ich ja, aber da ich die Daten aus einer Datenbank auslese, und diese Variable mit #... auch noch der Primärschlüssel ist, muss ich leider irgendwie damit arbeiten.
wie kann man den so ein primärschlüssel benutzen???
am besten sind doch wohl integer als schlüssel oder?
Also wie kann ichs dennoch übertragen?? Ich mein ich könnts einfach abschneiden, geht aber nicht, weil es Datensätze mit #abc und nur abc gibt :(
kannst es ja erst abschneiden und dann wieder anfügen.
Holger
kopfschüttelder nurso
wie kann man den so ein primärschlüssel benutzen???
Tja ist leider Vorgabe, kann ich nix machen
Aber mit urlencode() geht es ja
Huhu Holger
wie kann man den so ein primärschlüssel benutzen???
Tja ist leider Vorgabe, kann ich nix machen
Aber ein Primärschlüssel muss ja in jedem Fall eindeutig (unique) sein.
Da ja hier anscheinend zwei Informationen also ein String z.B. 'ABC' der entweder ein vorangestelltes '#' hat oder eben nicht, in einer Datenbankspalte abgelegt werden, solltest Du Dir doch Gedanken über eine Überarbeitung des Datenbank-Layouts machen.
Wenn es denn schon ein String als Primärschlüssel sein soll (sehe eigentlich keinen Grund dafür etwas anderes als Integer zu benutzen, wie sieht das denn bei autoincrement aus), dann wenigstens die Zusatzinformation '#' oder nicht '#' in einer separaten Spalte ablegen.
Aber mit urlencode() geht es ja
das hat ja nichts mit dem Datenbanklayout zu tun, sondern gilt für alle GET-Parameter.
Viele Grüße
lulu
Huhu Holger
wie kann man den so ein primärschlüssel benutzen???
Tja ist leider Vorgabe, kann ich nix machenAber ein Primärschlüssel muss ja in jedem Fall eindeutig (unique) sein.
jaja da hat lulu absolut recht.
Da ja hier anscheinend zwei Informationen also ein String z.B. 'ABC' der entweder ein vorangestelltes '#' hat oder eben nicht, in einer Datenbankspalte abgelegt werden, solltest Du Dir doch Gedanken über eine Überarbeitung des Datenbank-Layouts machen.
»»
das würde ich auch dringenst vorschlagen.
denn nur weil etwas eine vorgabe ist muss es ja datenbanktechnisch nicht sinnvoll sein.
hier werden wir als "entwickler" ja gerade gefordert.
wenn jemand keine ahnung von datenbanken hat oder nur mit access gearbeitet hat kann er das nicht beurteilen und sollte auf seinen fehler hingewiesen werden.
Wenn es denn schon ein String als Primärschlüssel sein soll (sehe eigentlich keinen Grund dafür etwas anderes als Integer zu benutzen, wie sieht das denn bei autoincrement aus), dann wenigstens die Zusatzinformation '#' oder nicht '#' in einer separaten Spalte ablegen.
auch hier kann ich lulu nur zustimmen da es sich ja um ein steuerzeichen handelt.
nurso
Huhu Holger
Aber ein Primärschlüssel muss ja in jedem Fall eindeutig (unique) sein.
Wir arbeiten schon dran, aber in einer größeren Firma ist eine DB-Änderung immer nicht so einfach (muss erst durch mehrere Genehmigungen usw.). Und auf eben diese Tabelle haben wir leider nur Leserecht...
Bis dahin muss ich mit diesem schönen Konstrukt leben..
...dann wenigstens die Zusatzinformation '#' oder nicht '#' in einer separaten Spalte ablegen.
Geht ja nicht, weil s.o. und der String erst durch '#' unique wird.
Gruß Holger
Huhu Holger
Ist $varname eine Zahl oder ein string ("ABCD") ist das ja kein Problem, aber bei mir ist $varname = "#ABCD", weil das in der Datenbank so liegt. Sobald ein # vorangestellt ist, funktioniert die Übergabe nicht :(( Eine Idee???
Du must den Parameter "urlencoden".
http://de.php.net/manual/de/function.urlencode.php
Viele Grüße
lulu
Danke es funktioniert
Holger