Ankündigung

Einklappen
Keine Ankündigung bisher.

PostgreSQL: Formatierung von Datensätzen in einer Tabelle

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PostgreSQL: Formatierung von Datensätzen in einer Tabelle

    Hallo Liebe PHP-Gemeinde!

    Ich versuche eine Postgres-Datenbank auszulesen und die Ergebnisse in eine einfache Tabelle anzeigen zu lassen. Soweit so gut.
    Allerdings brauche ich jetzt Hilfe, um z.B. gewisse Textoperationen/Bereinigungen durchführen zu können:
    • In der Spalte "Datum" wird der Wert amerikanisch ausgegeben "2016-03-08". Das müsste in das deutsche Format gebracht werden
    • In der Spalte "Schaltungspreis" muss der Wert nur mit Komma angegeben werden - also 655,00 Euro etc.
    • In der Spalte "Status" muss eine einfache Suchen-Ersetzen-Aktion ausgeführt werden.
    Ich habe schon versucht mit Variablen zu arbeiten (testweise), aber leider ohne Erfolg:
    $kunde = "f_19";
    $kunde = str_ireplace("a", "A", $kunde);

    Mache ich vielleicht schon beim Abruf der Daten einen Fehler?

    Ich freue mich über jeden Hinweis und Hilfen!
    Vielen Dank schon!
    html-ansicht.jpg



    HTML-Code:
    <html>
    
      <head>
      <link href='http://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
        <meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8" />
       <title>Verkäufe AutoAktuell</title>
       <meta data-refresh-every-n-seconds="5">
       <style type="text/css">
       body {font-family: "StatusBoardFont";background-color: #ffffff;}
       tr:nth-child(even) {
      background-color: #ffffff;
    }
     
    tr:nth-child(odd) {
      background-color: #d1d1d1;
    }
    table,tr,td    {border:0px;}
    
       </style>
      </head>
    
    <body>
    
      
      <?
      $link = pg_Connect("port=36000 host=192.168.1.3 dbname=data user=revolverserver password=");
      $result = pg_exec($link, "select * from l_261 where department='4' and state='4' and doctype='283' and color='6' OR department='4' and state='4' and doctype='283' and color='2' ORDER BY docid DESC");
      $numrows = pg_numrows($result);
      echo "Anzeigen = $numrows</p>";
      ?>
    
      <table border="0">
      <tr>
       <th>AB-Nr.</th>
       <th>Datum</th>
       <th>Kunde</th>
       <th>Schaltungspreis</th>
       <th>Status</th>
      </tr>
      <?
    
    
    $kunde = "f_19";
    $kunde = str_ireplace("a", "A", $kunde);
    
       for($ri = 0; $ri < $numrows; $ri++) {
        echo "<tr>\n";
        $row = pg_fetch_array($result, $ri);
        echo " <td>", $row["docid"], "</td>
       <td>", $row["f_2"], "</td>
       <td>", $row["$kunde"], "</td>
       <td>", $row["f_8"], "</td>
       <td>", $row["f_65uxuteysclxxqpqq"], "</td>
      </tr>
      ";
     
       }
    
       pg_close($link);
      ?>
      </table>
    
      </body>
    
      </html>

  • #2
    Hallo,
    mir fällt schon mal einiges auf.
    "Short Tags" würde ich durch die reg. Tags ersetzen.

    Des weiteren finde ich deinen Code sehr gewöhnungsbedürftig. Du schließt "p", aber öffnest es nirgends, genauso ist deine Formatierung sehr schwer zu lesen. Ich hab dir mal 2 Links rausgesucht, die alles beantworten sollten.

    Hier für die Stringfunktionen.

    Hier für die Datums- und Zahlenformatierung.

    Kommentar


    • #3
      Schau dir auchmal das EVA-Prinzip an.. HTML ist nur Ausgabe, da haben zb DB-Connections inmitten nichts verloren. PHP ist die "umschliessende" Sprache, nicht HTML, das ist nur die Ausgabe "hinten raus". http://php-de.github.io/jumpto/eva-prinzip/


      Code:
      select * 
      SELECT * ist übrigens pfui. Zähle die Felder die du im Ergebnis brauchst auf.

      http://php-de.github.io/jumpto/code-smells/#select-all

      Warum man kein SELECT * FROM ... verwenden sollte (pg forum)

      Kommentar


      • #4
        Für die Formatierungen von Datum und numerischen Werten hat PostgreSQL passenden Formatierungsfunktionen. Einfach nutzen, sie beißen nicht.

        Kommentar


        • #5
          Hat es einen bestimmten Grund, das du die speziellen PostgreSQL-Funktionen nutzt und nicht PDO?

          Kommentar


          • #6
            Erstmal danke für eure Kommentare!
            Ich muss dazu sagen, dass ich die PostgreSQL-Datenbank nur lesen kann – Änderungen in der Datenbank selbst kann ich nicht vornehmen.

            Deshalb muss ich z.B. das Datum oder den Status via PHP in ein anderes Format bzw. Wort umwandeln.

            Ist es eigentlich generell so, dass ich weitestgehend alle PHP-Befehle für die PostgreSQL-Datenbank benutzen kann?

            Kommentar


            • #7
              Code:
              test=*# select current_date;
                  date
              ------------
               2016-03-10
              (1 row)
              
              test=*# select to_char(current_date,'dd.mm.yyyy');
                to_char
              ------------
               10.03.2016
              (1 row)
              
              test=*# select 12.34;
               ?column?
              ----------
                  12.34
              (1 row)
              
              test=*# select to_char(12.34,'999D99');
               to_char
              ---------
                 12,34
              (1 row)

              Kommentar


              • #8
                Zitat von leave2 Beitrag anzeigen
                Ich muss dazu sagen, dass ich die PostgreSQL-Datenbank nur lesen kann – Änderungen in der Datenbank selbst kann ich nicht vornehmen.
                Brauchst du vermutlich auch nicht.

                Zitat von leave2 Beitrag anzeigen
                Deshalb muss ich z.B. das Datum oder den Status via PHP in ein anderes Format bzw. Wort umwandeln.
                Du musst das nicht mit PHP umsetzen, sondern kannst die Postgre-Funktionen in deine SQL-Anweisung einbauen.
                Andreas hat dir schon gezeigt wie es geht.

                Zitat von leave2 Beitrag anzeigen
                Ist es eigentlich generell so, dass ich weitestgehend alle PHP-Befehle für die PostgreSQL-Datenbank benutzen kann?
                Du kannst keine PHP-Befehle oder Funktionen für die PostgreSQL-Datenbank benutzen ! Das sind zwei Paar Schuhe.

                Kommentar


                • #9
                  jspit pl/php, https://public.commandprompt.com/documents/5 (duck und weg...)

                  Kommentar


                  • #10
                    Mh, vielleicht wäre es besser, wenn ein Admin meinen Post in das Forum der Scriptbörse verlegen kann?
                    Ich komme auch mit eurer Hilfe wohl alleine nicht weiter, wenn ich nichtmal erfolgreich einen Textteil suchen und ersetzen kann.

                    Meine Anforderungen dürften für einen Profi doch eigentlich recht schnell erledigt sein?

                    Kommentar


                    • #11
                      Zitat von akretschmer Beitrag anzeigen

                      Intressant, kannte ich noch nicht. Danke. Dies hat der TE aber bestimmt nicht gemeint mit der Bemerkung
                      dass ich weitestgehend alle PHP-Befehle für die PostgreSQL-Datenbank benutzen kann?

                      Kommentar


                      • #12
                        Es gibt weitere Perlen wie Shell und LOLcode

                        Kommentar


                        • #13
                          • In der Spalte "Status" muss eine einfache Suchen-Ersetzen-Aktion ausgeführt werden.
                          Ich habe schon versucht mit Variablen zu arbeiten (testweise), aber leider ohne Erfolg:
                          $kunde = "f_19";
                          $kunde = str_ireplace("a", "A", $kunde);
                          Du suchst&ersetzt mit obigen Code aber nicht in der Spalte "status" sonderm im String "f_19".

                          Kommentar


                          • #14
                            lstegelitz er hat dazu in einem anderen Forum schon eine ganz konkrete Antwort dazu.

                            Kommentar


                            • #15
                              Crosspost. Bitte beachten: "Anmerkungen zu Multipostings" -> http://www.php.de/articles/regeln-und-richtlinien

                              https://www.pg-forum.de/viewtopic.php?f=50&t=7503

                              [MOD: Geschlossen]

                              Kommentar

                              Lädt...
                              X