Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Wert und Spaltenname ausgeben

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Wert und Spaltenname ausgeben

    Hallo Freunde,

    gibt es eine Möglichkeit aus MySql einen Wert und zeitgleich den entsprechenden Spaltennamen aus dem der Wert stammt abzufragen?

    Also Z.B.
    Code:
    Select Spaltenname FROM TEST WHERE Spaltenname='445.80';
    Als Ergebnis möchte ich dann den Spaltennamen und den abgefragten Wert haben.

    ist sowas möglich?

    Ich weiss natürlich das man Spaltennamen und weiteres mit
    Code:
    SHow Coloumns FROM Tabelle;
    Abfragen kann. Aber So bringt mir das nichts.

    Wäre cool, wenn mir jemand hierbei behilflich ist.

    Danke im Voraus und Gruß aus Köln

  • #2
    Verstehe ich nicht! Beim where gibst du doch den Spaltennamen an, also hast du ihn doch auch.
    Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

    Kommentar


    • #3
      Ich möchte den Spaltennamen selbst ausgeben.

      Kommentar


      • #4
        ??? echo "Spaltenname"; ???
        Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

        Kommentar


        • #5


          Schon klar...

          Aber was ich möchte ist folgendes:

          Ich habe eine Tabelle mit wahnsinnig vielen Spalten.
          In manchen Spalten sind Werte drin, in anderen wiederum nicht.

          Ziel ist es ein PDF Dokument zu generieren, welches mir den Spaltennamen und den entsprechenden Wert erst dann ausgibt, wenn auch ein Wert vorhanden ist.

          Diese Logik erfordert das man die Tabelle nach dem Spaltennamen abfragt und gleichzeitig nach dem Wert.
          Darüber hinaus soll erst dann ein Spaltenname mit Wert ausgegeben werden, wenn ein Wert vorhanden ist.

          Also ...
          1.) Du fragst die Datenbank nach der Anzahl der Spalten und gibst diese aus:

          PHP-Code:
              echo '<html><body>';
              echo 
          '<table border="1"><tr><td>';
              echo 
          '<table border="1">';
              while (
          $i mysql_num_fields($result)) {
                  
          $meta mysql_fetch_field($result$i);

                  echo 
          '<tr><td>' str_replace("_"" ",$meta -> name). '</td></tr>';
                  
          $i $i 1;
              } 
          Dann macht du eine verschachtelte Schleife, in der Du einerseits die Zeilendurchläufe und andererseits die entsprechenden Werte ausgibst.

          PHP-Code:
              $i 0;
              while (
          $row mysql_fetch_row($result)) { 
                  
          $count count($row);
                  
          $y 0;
                  while (
          $y $count) {
                       
          $c_row current($row);
                      if (
          $c_row=="") {
                          echo 
          '<tr><td>&nbsp;</td></tr>';
                      } else {
                      echo 
          '<tr><td>' $c_row '</td></tr>';
                      }
                      
          next($row);
                      
          $y $y 1;
                      
                  } 
                  
          $i $i 1;
              } 
              echo 
          '</table>';
              echo 
          '</td></tr></table>';
              echo 
          '</body></html>';
              
          mysql_free_result($result);


          mysql_close(); 
          Und somit hast Du einen schön verpackte Tabelle mit zwei Spalten, wobei in der linken Spalte der Spaltenname sich befindet und in der rechten Spalte der dazugehörige Wert.

          Fertig!

          Nun muss ich noch folgendes einbauen:

          Wenn Wert vorhanden, dann Spaltenname und zugehörigen Wert anzeigen, sonst nicht anzeigen.

          Das war's.

          Und genau da bin ich gerade dran.

          Kommentar


          • #6
            Es geht noch einfacherer wie ich gerade feststelle:

            PHP-Code:
                echo '<html><body>';
                echo 
            '<table border="1" height="100%">';
                
            $i 0;
                while (
            $row mysql_fetch_row($result)) {
                    
                    
            $count count($row);
                    
            $y 0;
                    while (
            $y $count) {
                        
            $meta mysql_fetch_field($result$y); 
                         
            $c_row current($row);
                        if (
            $c_row=="") {
                            
                        } else {
                        echo 
            '<tr><td>'.$meta->name.'</td><td>' $c_row '</td></tr>';
                        }
                        
            next($row);
                        
            $y $y 1;
                        
                    }
                    
            $i $i 1;
                }
                echo 
            '</table>';
                echo 
            '</body></html>';
                
            mysql_free_result($result);


            mysql_close(); 
            Da ich in den Spaltennamen ziemlich viele "underscores" drin habe, entferne ich diese mit str_replace();.
            Sieht schöner aus.

            Das wars!

            Viel Spaß mit dem Code!

            Kommentar


            • #7
              PHP-Code:
              <?php
              $db 
              = new PDO('mysql:host=127.0.0.1;dbname=guellepumpe''root''pw');
              $db->exec("SET NAMES 'utf8'");
              $db->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

              $stmt $db->prepare('SELECT * FROM table WHERE id=:id');
              $stmt->execute(array(':id' => 123));
              $rows $stmt->fetchAll(PDO::FETCH_ASSOC);

              ?>

              <html>
                  <body>
                      <table>
                          <?php foreach($rows as $cells): ?>
                          <tr>
                              <?php foreach($cells as $cellName => $cellValue): ?>
                              <td><strong><?= $cellName ?></strong></td>
                              <td><?= $cellValue ?></td>
                              <?php endforeach ?>
                          </tr>
                          <?php endforeach ?>
                      </table>
                  </body>
              </html>
              (Nicht getestet)

              Kommentar


              • #8
                Und wie würdest Du es in einer fpdf-Datei anstellen?
                Das klappt bei mir irgendwie nicht.

                Kommentar

                Lädt...
                X