Holger: Variablenübergabe

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

  1. ja # ist ein komentar zeichen!!!!!!!!!!!!!!!

    1. 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

      1. 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

        1. wie kann man den so ein primärschlüssel benutzen???

          Tja ist leider Vorgabe, kann ich nix machen

          Aber mit urlencode() geht es ja

          1. 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

            --
            bythewaythewebsuxgoofflineandenjoytheday
            1. 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.

              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

            2. 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

  2. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Danke es funktioniert

      Holger