Ankündigung

Einklappen
Keine Ankündigung bisher.

MYSQL in PHP: Länge eines Feldes bestimmen über Feldnamen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MYSQL in PHP: Länge eines Feldes bestimmen über Feldnamen

    Hallo zusammen,

    ich hätte da noch eine Frage:

    Ich spreche eine MySQL-DB in meinem PHP-Skript an. Ich bräuchte nun eine Möglichkeit, die Länge eines Felds zu bestimmen.

    Die Möglichkeit über die Funktion
    Code:
    mysql_field_len
    habe ich schon gefunden, aber hier muß man ja die FeldNummer angeben.
    Ich würde das aber gerne über den Feldnamen erledigen können.

    Gibt es da eine Funktion?
    Oder gibt es vielleicht eine Funktion, mit der man aus dem FeldNamen die FeldNummer herausfinden kann?


    Danke schon mal im Voraus!


    Liebe Grüße

    ComputerFee


  • #2
    sorry, dass ich keine antwort habe .. aber ich habe diese funktion mal beim studium des manuals gefunden, konnte mir aber irgendwie nicht begreiflich machen wozu man sie braucht ..

    demnach stelle ich diese frage mal an dich ..
    danke ..

    grüße ben
    privater Blog

    Kommentar


    • #3
      Re: MYSQL in PHP: Länge eines Feldes bestimmen über Feldname

      Zitat von ComputerFee
      Ich bräuchte nun eine Möglichkeit, die Länge eines Felds zu bestimmen.
      ...
      Ich würde das aber gerne über den Feldnamen erledigen können.
      Code:
      echo strlen($datensatz['feldname']);

      Kommentar


      • #4
        Re: MYSQL in PHP: Länge eines Feldes bestimmen über Feldname

        Zitat von ComputerFee
        Die Möglichkeit über die Funktion
        Code:
        mysql_field_len
        habe ich schon gefunden, aber hier muß man ja die FeldNummer angeben.
        Ich würde das aber gerne über den Feldnamen erledigen können.
        Als ganz normale Abfrage in SQL:

        Code:
        SHOW FIELDS FROM `table` LIKE 'field'
        LIKE ist optinal, ohne werden alle Felder zurückgegeben.

        Kommentar


        • #5
          Hallo Ben,

          ich möchte eine Maske erstellen, in der alle Daten zu einem Satz aufbereitet sind. Die Daten sollen dann auch immer an der gleichen Stelle in der Maske auftauchen.

          Da die Felder unterschiedlich gefüllt sind, verschiebt sich nun meine Anzeige. Mein Idee war nun, an den eigentlichen Feldinhalt noch Leerstellen anzuhängen, bis die Feldlänge erreicht ist. Damit wäre dann gewährleistet, daß die Seite immer gleich aussieht.

          Ich kann natürlich nicht ausschließen, daß ich das komplizierter mache als nötig wäre, weil ich noch absoluter Anfänger bei PHP bin.


          Liebe Grüße

          ComputerFee

          Kommentar


          • #6
            hast Du Dir schon mal überlegt, mit HTML-Tabellen zu arbeiten?

            Gruß,
            kamalo

            Kommentar


            • #7
              "SHOW FIELDS FROM table" und "mysql_field_len()" liefern die definierte Länge des Feldes, nicht die Länge des Inhalts. Dazu brauchst du strlen(). Wenn du aber mit sprintf() arbeitest, brauchst du die Länge des Textes gar nicht zu kennen, du gibst einfach an, wie lang der Text dargestellt werden soll.
              Hier zwei Beispiele:
              Code:
              echo sprintf('%-50s', $text);
                       # $text wird linksbündig 50 Stellen lang ausgegeben 
              echo sprintf('Zeile %03d enthält %10s
              ', $zeile, $found);
                       #  %03d wird durch $zeile ersetzt, 3-stellig mit führenden Nullen
                       #  %10s wird durch $found ersetzt, 10-stellig
              "echo sprintf" kannst du auch durch "printf" ersetzen
              Gruss
              L

              Kommentar


              • #8
                Hallo Kamalo,

                Zitat von Kamalo
                hast Du Dir schon mal überlegt, mit HTML-Tabellen zu arbeiten?
                In diesem Fall ist es ja nur ein einziger Datensatz und den möchte ich nicht in einer Tabelle haben.

                Ansonsten nutze ich auch hauptsächlich Tabellen.


                Liebe Grüße

                ComputerFee

                Kommentar


                • #9
                  Hallo lazydog,

                  aber genau die definierte Länge der Felder brauche ich ja.

                  Ich möchte das ziemlich einfach gestalten und mir eine Funktion erstellen, der ich das Feld übergebe und die mir dann einen String zurückgibt, der bereits auf die richtige Länge aufgefüllt wurde.


                  Liebe Grüße

                  ComputerFee

                  Kommentar


                  • #10
                    Re: MYSQL in PHP: Länge eines Feldes bestimmen über Feldname

                    Hallo Meikel,

                    Zitat von meikel
                    Code:
                    echo strlen($datensatz['feldname']);
                    Leider bekomme ich bei dieser Variante nur die tatsächliche Länge des Feldes wieder zurück; ich bräuchte aber die definierte Feldlänge.


                    Liebe Grüße

                    ComputerFee

                    Kommentar


                    • #11
                      Ich binmal so frei und verweise auf meine Post weiter oben...

                      Kommentar


                      • #12
                        Re: MYSQL in PHP: Länge eines Feldes bestimmen über Feldname

                        Zitat von ComputerFee
                        Leider bekomme ich bei dieser Variante nur die tatsächliche Länge des Feldes wieder zurück; ich bräuchte aber die definierte Feldlänge.
                        Guradia hatte oben beschrieben, wie Du da rankommst.

                        Beachte dabei folgendes: jeder zusätzliche DB Request ist teuer, weil er RAM und Zeit kostet. Falls Du Deine Tabellenstruktur nicht täglich änderst, wäre es ratsamer, wenn Du solche Infos im PHP Script speicherst.

                        ZB. so:
                        Code:
                        define ('_spalte1' , 12);
                        echo _spalte1;

                        Kommentar

                        Lädt...
                        X